javascript实现简单的购物车

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .wrap{
            width: 800px;
            margin: 0 auto;
        }
        .box,#box{
            width: 800px;
            border: 2px solid green;
            position: relative;
            top: 0;
            padding: 10px;
        }
        .check,p,span,.num,.add,.minus{
        /*    position: absolute;
            left: 0;
            top: 0;*/
            display: inline-block;
        }
        img{
            width: 82px;
            height: 82px;
            display: inline-block;
        }
        p{
            margin: 0 40px;
            color: #999999;
        }
        .price {
            vertical-align: middle;
            margin: 0 40px;
            font-size: 20px;
            color: red;
        }
        .num{
            width: 20px;
            height: 20px;
            border:1px solid;
            line-height: 20px;
            text-align: center;
            margin-left: 40px;
        }
        #selecteAll,#dele,#move,#product,#proNum,#textP,#totalPri{
            display: inline-block;
            color: #666666;
            font-size: 16px;
            margin: 15px;
        }
        #proNum,#totalPri,#textP{
            margin:15px 0px;
        }
        #product{
            margin-right: 0px;
        }
        #accounts{
            display: block;
            float: right;
            margin-top: 40px;
        }
        #box::after{
            content: "";
            display: block;
            clear: both;
        }
        #over{
            margin-left: 30px;
        }
    </style>
</head>
<body>
    <!-- 思路  1.先用HTML写出一行页面;2.在js中通过for循环写出其他行 -->
    <div class="wrap">
        <!-- <div class="box">
            <input type="checkbox" class ="check">
            <img src="img/img1.png" alt="">
            <p>绿色认证好蔬菜</p>
            <span>20.00</span>
            <div class="num">0</div>
            <input type="button" value="+">
            <input type="button" value="-">
        </div> -->
        <div id="box">
            <input type="checkbox" id="selecteAll">全选
            <span id="dele">删除选中商品</span>
            <span id="move">移动到我的关注</span>
            <span id="product">一共选中</span>
            <span id="proNum">件商品</span>
            <span id="textP">,总价格为(不含运费)$</span>
            <span id="totalPri">元</span>
            <input type="button" value="结算" id="over">
        </div>
    </div>
</body>
<script>
    //获取变量
    var wrap = document.querySelector(".wrap");
    var box = document.querySelector(".box");
    var img = document.querySelector("img");
    // for循环生成下面产品
    for(var i = 1 ; i < 6 ; i++){
        list();
        // 调用函数
    }
    // 创建列表函数
    function list(){
        var count = 0;
        // 创建大盒子
        var box = document.createElement("div");
        box.className = "box";
        // 创建勾选
        var check = document.createElement("input");
        check.className = "check";
        // 为选框设置点击事件
        check.onclick = function(){
            if (check.checked == true) {
                count = 1;
                num.innerHTML = count;
            }else{
                count=0;
                num.innerHTML = count;
            }
        }
        // 设置type类型
        check.setAttribute("type","checkbox");
        // 创建图片
        var imgs = document.createElement("img");
        imgs.src = "img/img"+i+".png";
        // 创建文本
        var text = document.createElement("p");
        text.innerHTML = "绿色认证好蔬菜";
        // 创建价格
        var price = document.createElement("span");
        price.innerHTML = "20.00"
        price.className = "price";
        // 创建数量
        var num = document.createElement("div");
        num.className = "num";
        num.innerHTML = count;
        // 创建+按钮
        var add = document.createElement("input");
        add.setAttribute("type","button");
        add.className = "add";
        add.value = "+";
        // 在每次生成的box中调用add点击事件
        add.onclick = function(){
            // 当点击add时check会选中
            check.checked = true;
            count+=1;
            console.log(count);
            num.innerHTML = count;
        }
        // 创建-按钮
        var minus = document.createElement("input");
        minus.setAttribute("type","button");
        minus.className = "minus"
        minus.value = "-";
        // 在每次生成的box中调用minus的点击事件
        minus.onclick = function(){
            if (count > 0 ) {
                count--;
                console.log(count);
                num.innerHTML = count;
                
            }else{
                check.checked = false;
                count = 0;
                num.innerHTML = count;
                console.log(count);
            }
        }
        // 将所有创建标签写入wrap中
        wrap.appendChild(box);
        box.appendChild(check);
        box.appendChild(imgs);
        box.appendChild(text);
        box.appendChild(price);
        box.appendChild(num);
        box.appendChild(add);
        box.appendChild(minus);
    }
    // 结算行设置
    // 获取变量
    var chek = document.querySelectorAll(".check");
    var number = document.querySelectorAll(".num");
    var pri = document.querySelectorAll(".price");
    // 点击全选
    selecteAll.onclick = function(){
        if (selecteAll.checked) {
            for(var i = 0;i < chek.length;i++){
            var count = 0;
            chek[i].checked = true;
            count = 1;
            number[i].innerHTML = count;
            }
        }
    }
    // 点击删除
    dele.onclick = function(){
        for(var i = 0 ; i < chek.length ; i++){
            var count = 0
            number[i].innerHTML = count;
            chek[i].checked = false;
            selecteAll.checked = false;
        } 
    }
    // 点击结算
    over.onclick = function(){
            var proNums = 0;
            var total = 0;
            console.log(111);
        for(var i = 0 ; i < 5 ; i++){
            // console.log(111);
            console.log(chek[i]);
            if (chek[i].checked) {
                // 数量
                console.log(111);
                console.log(number[i].innerHTML);
                proNums += Number(number[i].innerHTML);
                total += Number(pri[i].innerHTML)*Number(number[i].innerHTML);
            }
        }
        proNum.innerHTML = proNums+"件商品" ;
        totalPri.innerHTML = total+"元";
    }
</script>
</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单JavaScript程序实现简易购物车的示例: ```javascript // 初始化商品列表 const products = [ { id: 1, name: '商品1', price: 100 }, { id: 2, name: '商品2', price: 200 }, { id: 3, name: '商品3', price: 300 }, { id: 4, name: '商品4', price: 400 }, ] // 初始化购物车 let cart = [] // 添加商品到购物车 function addToCart(id) { const product = products.find(p => p.id === parseInt(id)) if (product) { cart.push(product) console.log(`已添加商品 ${product.name} 到购物车`) } else { console.log('商品不存在') } } // 从购物车中移除商品 function removeFromCart(id) { const index = cart.findIndex(p => p.id === parseInt(id)) if (index !== -1) { const product = cart.splice(index, 1)[0] console.log(`已从购物车中移除商品 ${product.name}`) } else { console.log('购物车中不存在该商品') } } // 计算购物车总价 function getTotalPrice() { return cart.reduce((total, product) => total + product.price, 0) } // 打印购物车商品列表和总价 function printCart() { console.log('购物车商品列表:') cart.forEach(product => console.log(`- ${product.name}(${product.price}元)`)) console.log(`总价:${getTotalPrice()}元`) } // 测试 addToCart(1) addToCart(2) addToCart(3) removeFromCart(2) printCart() ``` 在这个示例中,我们首先定义了一个商品列表和一个购物车数组,然后实现了三个操作函数: - `addToCart(id)`:将指定id的商品添加到购物车中; - `removeFromCart(id)`:从购物车中移除指定id的商品; - `getTotalPrice()`:计算购物车中所有商品的总价。 最后,我们调用了这些函数来测试程序的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值