美文网首页
2018-09-04JavaScript购物车

2018-09-04JavaScript购物车

作者: 黄昭鸿 | 来源:发表于2018-09-04 21:23 被阅读0次
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>JavaScript购物车</title>
    <style type="text/css">
        .commodityNo {
            width: 40px;
            text-align: center;
        }

        td {
            text-align: center;
        }
    </style>
</head>
<body>
<script language="JavaScript">
    //空格、注释也算一个子节点
    function decrease(element) {
        for (var i = 0; i < element.parentNode.childNodes.length; i++) {
            var thechild = element.parentNode.childNodes[i];
            if (thechild.className === "commodityNo" && parseInt(thechild.value) > 0) {
                //element.parentNode.childNodes[i].value = parseInt(thechild.value)-1
                //console.log(thechild);
                thechild.value = parseInt(thechild.value) - 1;
                f();
                break;
            }
        }
    }

    function add(element) {
        for (var i = 0; i < element.parentNode.childNodes.length; i++) {
            var thechild = element.parentNode.childNodes[i];
            if (thechild.className === "commodityNo") {
                thechild.value = parseInt(thechild.value) + 1;
                f();
                break;
            }
        }
        //element.previousSibling.previousSibling.value = parseInt(element.previousSibling.previousSibling.value) + 1;
    }

    //小计和总计
    function f() {
        var sum = 0.0;
        var tt = document.getElementById("cartTable");
        var rr = tt.getElementsByTagName("tr");
        for (var i = 1; i < (rr.length - 1); i++) {
            var cel = rr[i].getElementsByTagName("td");
            var price = parseFloat(cel[1].innerText);
            var q = parseInt(cel[2].getElementsByTagName("input")[1].value);
            var result = price * q;
            cel[3].innerHTML = result.toFixed(2);
            sum += result;
        }
        console.log(sum);
        document.getElementById("suminfo").innerText = sum.toFixed(2);
    }
</script>

<table cellpadding="5" cellspacing="5" width="600" frame="box" id="cartTable">
    <caption>购物车</caption>
    <tr>
        <th>名称</th>
        <th>价格</th>
        <th>数量</th>
        <th>小计</th>
    </tr>
    <tr>
        <td>挪威的森林</td>
        <td>18.80</td>
        <td><!--8个子节点,子节点包括空格、换行和注释-->
            <input type="button" value="-" onclick="decrease(this)">
            <input id="commodityNo1" value="0" class="commodityNo" onchange="f()">
            <input type="button" value="+" onclick="add(this)">
        </td>
        <td>0.00</td>
    </tr>
    <tr>
        <td>追风筝的人</td>
        <td>32.40</td>
        <td><!--8个子节点,子节点包括空格和注释-->
            <input type="button" value="-" onclick="decrease(this)">
            <input id="commodityNo2" value="0" class="commodityNo" onchange="f()">
            <input type="button" value="+" onclick="add(this)">
        </td>
        <td>0.00</td>
    </tr>
    <tr>
        <td>雪落香杉树</td>
        <td>46.30</td>
        <td><!--8个子节点,子节点包括空格和注释-->
            <input type="button" value="-" onclick="decrease(this)">
            <input id="commodityNo3" value="0" class="commodityNo" onchange="f()">
            <input type="button" value="+" onclick="add(this)">
        </td>
        <td>0.00</td>
    </tr>
    <tr>
        <td>杀死一只知更鸟</td>
        <td>22.50</td>
        <td><!--8个子节点,子节点包括空格和注释-->
            <input type="button" value="-" onclick="decrease(this)">
            <input id="commodityNo4" value="0" class="commodityNo" onchange="f()">
            <input type="button" value="+" onclick="add(this)">
        </td>
        <td>0.00</td>
    </tr>
    <tr>
        <td><strong>总计</strong></td>
        <td colspan="2"></td>
        <td id="suminfo">0.00</td>
    </tr>
</table>
</body>
</html>

相关文章

网友评论

      本文标题:2018-09-04JavaScript购物车

      本文链接:https://www.haomeiwen.com/subject/siwnwftx.html