您现在的位置:首页 >> 前端 >> 内容

DOM简易购物车实例

时间:2017/7/1 9:27:00 点击:

  核心提示:DOM简易购物车实例!DOCTYPE htmlhtml lang=enheadmeta charset=UTF-8titleTitle/titlestyletable{border-spacing:0...
DOM简易购物车实例
<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>Title</title>  
    <style>  
        table{  
            border-spacing:0;  
            border:1px solid #aaa;  
        }  
        th,td{  
            width:100px;  
            border:1px solid #aaa;  
        }  
    </style>  
</head>  
<body>  
<table id="data">  
    <thead>  
        <tr>  
            <th>商品名称</th>  
            <th>单价</th>  
            <th>数量</th>  
            <th>小计</th>  
        </tr>  
    </thead>  
    <tbody>  
        <tr>  
            <td>iPhone6</td>  
            <td>¥4488.00</td>  
            <td>  
                <button onclick="calc(this)">-</button>  
                <span>1</span>  
                <button onclick="calc(this)">+</button>  
            </td>  
            <td>¥4488.00</td>  
        </tr>  
        <tr>  
            <td>iPhone6 plus</td>  
            <td>¥5288.00</td>  
            <td>  
                <button onclick="calc(this)">-</button>  
                <span>1</span>  
                <button onclick="calc(this)">+</button>  
            </td>  
            <td>¥5288.00</td>  
        </tr>  
        <tr>  
            <td>iPad Air 2</td>  
            <td>¥4288.00</td>  
            <td>  
                <button onclick="calc(this)">-</button>  
                <span>1</span>  
                <button onclick="calc(this)">+</button>  
            </td>  
            <td>¥4288.00</td>  
        </tr>  
    <tfoot>  
        <tr>  
            <td colspan="3">总计</td>  
            <td>¥14064.00</td>  
        </tr>  
    </tfoot>  
</table>  
  
  
<script>  
    function calc(btn){ //事件发生时,btn中自动获得点击的按钮  
        //修改数量  
        //找到当前按钮btn的父节点,保存在td中  
        var td=btn.parentNode;  
        //在td下找唯一的一个span元素,保存在span中  
        var span=td.getElementsByTagName("span")[0];  
        //取出span的内容转为数字后保存到变量n中  
        var n=parseInt(span.innerHTML);  
        //如果当前按钮的内容是+,则n++  
        if(btn.innerHTML==="+"){  
            n++;  
        }else if(n!=1){n--;}//否则,如果n!=1,n--  
        //将n写入span的内容  
        span.innerHTML=n;  
  
  
        ///////计算小计/////////  
        //找当前td的父元素tr  
        var tr=td.parentNode;  
        //找tr下所有td,保存在变量tds中  
        var tds=tr.getElementsByTagName("td");  
        //取出tds中第二个td的内容,从1位置截取剩余字符串,转为小数,保存在price中  
        var price=parseFloat(tds[1].innerHTML.slice(1));  
        //计算price*n,保存到变量sub中  
        var sub=price*n;  
        //将“¥:”+sub.toFixed(2)写回tds中第四个td中  
        tds[3].innerHTML="¥"+sub.toFixed(2);  
  
  
        ////////////////计算总计////////////////////////////////////  
        //按id找到table  
        var table=document.getElementById("data");  
        //找到table下的tbody  
        var tbody=table.getElementsByTagName("tbody")[0];  
        //找到tbody下的所有tr,保存在trs  
        var trs=tbody.getElementsByTagName("tr");  
        //遍历trs中每个tr,同时声明变量total=0  
        for(var i=0,len=trs.length,total=0;i<len;i++){  
        //  找到当前tr下的第四个td  
            var td1=trs[i].getElementsByTagName("td")[3];  
        //  取出td中的内容,从1位置截取剩余字符,转为小数,累加到total中  
            total+=parseFloat(td1.innerHTML.slice(1));  
        }//遍历结束后  
        //找到table下的所有td,保存在tds中  
        var tds1=table.getElementsByTagName("td");  
        //将“¥;”+total.toFixed(2)放入tds中最后一个td中  
        tds1[tds1.length-1].innerHTML="¥"+total.toFixed(2);  
    }  
</script>  
  
  
</body>  
</html>  

 

Tags:DO OM M简 简易 
作者:网络 来源:xingkong_3