首页 > 其他 > 详细

简单购物车

时间:2021-01-10 22:26:03      阅读:24      评论:0      收藏:0      [点我收藏+]
//基础数据
let dataArr = [{
        name: "Apple",
        price: 100,
        count: 1
    },
    {
        name: "HuaWei",
        price: 200,
        count: 1
    },
    {
        name: "xiaomi",
        price: 300,
        count: 1
    },
    {
        name: "vivo",
        price: 400,
        count: 1
    },
    {
        name: "oppo",
        price: 500,
        count: 1
    }
];
let tbEle = document.querySelector("tbody");

//渲染tbody
function renderTB(inputIndex) {
    let str = "";
    let resulte = 0;
    dataArr.map((item, index) => {
        str += "<tr>";
        str += `
            <td>${index+1}</td>
            <td>${item.name}</td>
            <td>${item.price}</td>
            <td>
                <span data-index="${index}">-</span>
                <input type="text" style="width:30px" value="${item.count}" data-index="${index}">
                <span data-index="${index}">+</span>
            </td>
            <td>${item.price*item.count}</td>
            `;
        str += "</tr>";
        resulte += item.price * item.count;
    });
    str += `
    <tr> 
        <td colspan="4" style="text-align:right">合计:</td>
        <td>${resulte}</td>
        <div></div>
    </tr>`
    tbEle.innerHTML = str;
    //激活input标签
    // if (inputIndex != undefined) {
    //     let inputele = document.querySelectorAll("input");
    //     inputele[inputIndex].focus();
    // }
}
renderTB();

//加、减功能
tbEle.addEventListener("click", psFoo);

function psFoo(e) {
    let event = e || window.event;
    if (event.target.innerText == "+") {
        console.log(dataArr[event.target.dataset.index].count)
        dataArr[event.target.dataset.index].count = ++event.target.previousElementSibling.value;
        renderTB();
    }
    if (event.target.innerText == "-" && dataArr[event.target.dataset.index].count > 1) {
        dataArr[event.target.dataset.index].count = --event.target.nextElementSibling.value;
        renderTB();
    }
}

input修改时进行数据渲染v1.0
tbEle.addEventListener("change", e => {
    let event = e || window.event;
    if (event.target.type == "text") {
        dataArr[event.target.dataset.index].count = event.target.value;
        renderTB();
    }
});

简单购物车

原文:https://www.cnblogs.com/yrs-1216/p/14259667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!