js函数传参

重用代码:

1.尽量保证HTML代码结构一致,可以通过父级选取子元素

2.把核心主程序实现,用函数包起来

3.把每组里不同的值找出来,通过传参实现

实例(计算商品总价)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        window.onload = function () {
            var list = document.getElementById("list");
            var lis = list.getElementsByTagName("li");
            var spans = list.getElementsByTagName("span");
            var ems = list.getElementsByTagName("em");
            var strongs = list.getElementsByTagName("strong");
            var num = document.getElementById("num");
            var price = document.getElementById("price");
            var max = document.getElementById("max");
            //  f1(lis[0]);
            //  f1(lis[1]);
            //  f1(lis[2]);
            for (var i = 0; i < lis.length; i++) {
                f1(i);
            }
            function f2() {
                var a = 0;
                var b = 0;
                var c = 0;
                for (var i = 0; i < strongs.length; i++) {
                    a += parseFloat(strongs[i].innerHTML);
                    b += parseFloat(spans[i].innerHTML);
                    // 当strong的值不是0时,才去比较em的大小
                    if (strongs[i].innerHTML!=0) {
                        if (parseFloat(ems[i].innerHTML) > c) {
                            c =parseFloat(ems[i].innerHTML);
                        }
                    }
                }
                max.innerHTML=c;
                num.innerHTML = a;
                price.innerHTML = b;
               

            }
            function f1(d) {
                var li_inps = lis[d].getElementsByTagName("input");
                var li_strong = lis[d].getElementsByTagName("strong")[0];
                var li_em = lis[d].getElementsByTagName("em")[0];
                var li_span =lis[d].getElementsByTagName("span")[0];
                var n1 = 0;
                li_inps[0].onclick = function () {
                    n1--;
                    if (n1 < 0) {
                        n1 = 0;
                    }
                    li_strong.innerHTML = n1;
                    li_span.innerHTML = n1 * (parseFloat(li_em.innerHTML)) + "元";
                    f2();
                }
                li_inps[1].onclick = function () {
                    n1++;
                    li_strong.innerHTML = n1;
                    li_span.innerHTML = n1 * (parseFloat(li_em.innerHTML)) + "元";
                    f2();
                }

            }
        }
    </script>
</head>

<body>
    <ul id="list">
        <li>
            <input type="button" value="-">
            <strong>0</strong>
            <input type="button" value="+"> 单价:
            <em>12.5元</em> 小计:
            <span>0元</span>
        </li>
        <li>
            <input type="button" value="-">
            <strong>0</strong>
            <input type="button" value="+"> 单价:
            <em>8元</em> 小计:
            <span>0元</span>
        </li>
        <li>
            <input type="button" value="-">
            <strong>0</strong>
            <input type="button" value="+"> 单价:
            <em>20.5元</em> 小计:
            <span>0元</span>
        </li>
    </ul>
    <p>总:<span id="num">0</span>件<br>总计:<span id="price">0</span>元<br> 其中最贵的商品单价是:
        <span id="max">0</span>元
    </p>
</body>

</html>

原文地址:https://www.cnblogs.com/zhuuuu/p/7581888.html