简易购物车

HTML代码

<table>
        <thead>
            <tr>
                <th>编号</th>
                <th>名称</th>
                <th>单价</th>
                <th>数量</th>
                <th>小计</th>
            </tr>
        </thead>
        <tbody>
        </tbody>
        <tfoot>
            <tr>
                <td colspan="4">合计:</td>
            </tr>
        </tfoot>
    </table>

JS代码

let dataArr = [
    {
        name: "Aplle",
        price: 500,
    },
    {
        name: "HUAWEI",
        price: 800,
    },
    {
        name: "XIAOMI",
        price: 600,
    },
    {
        name: "VIVO",
        price: 700,
    },

]


let tbodyEle = document.getElementsByTagName("tbody")[0];

//初始化页面
let result = 0;
dataArr.map((item, index) => {
    let str = ``;
    str += `<tr>
    <td>${index + 1}</td>
    <td>${item.name}</td>
    <td>${item.price}</td>
    <td>
    <input type="button" value="-">
    <input type="text" value="1">
    <input type="button" value="+">
    </td>
    <td class="subtotal">${dataArr[index].price}</td>    
    </tr>`
    result += dataArr[index].price;
    tbodyEle.innerHTML += str;
})

let tdEle = document.createElement("td");
// tdEle.className = "lastSub";
tdEle.innerText = result;
let trEle = document.querySelector("tfoot>tr")
trEle.appendChild(tdEle)
let subEles = document.getElementsByClassName("subtotal");
let inpEles = document.getElementsByTagName("input");

//添加监听事件
tbodyEle.addEventListener("click", e => {
    let event = e || window.event;
    if (event.target.value == "-" && event.target.nextElementSibling.value > 1) {
        event.target.nextElementSibling.value = parseInt(event.target.nextElementSibling.value) - 1;
        subEles[0].innerHTML = dataArr[0].price * event.target.nextElementSibling.value;
    }
    if (event.target.value == "+") {
        event.target.previousElementSibling.value = parseInt(event.target.previousElementSibling.value) + 1;
        subEles[0].innerHTML = dataArr[0].price * event.target.previousElementSibling.value;
    }
})

tbodyEle.addEventListener("input", e => {
    let event = e || window.event;
    if (!isNaN(event.target.value)) {
        subEles[0].innerHTML = dataArr[0].price * event.target.value;
    }
})

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值