简单的购物车和购物车结算

购买部分
HTML部分

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>加入购物车</title>
        <link rel="stylesheet" type="text/css" href="../css/reset.css" />
        <link rel="stylesheet" type="text/css" href="../css/JD.css" />
        <script type="text/javascript" src="../js/cookies.js"></script>
        <script type="text/javascript" src="../js/JD.js"></script>
    </head>
    <body>
        <div id="aside-cart">
            <span>
                <img src="../img/cart.png" />购物车
            </span>
        </div>
        <div id="goods" class="clear">
            <dl data-id="id01">
                <dt>
                    <img src="../img/1.jpg" />
                </dt>
                <dd>
                    <strong>¥259.00</strong>
                    <p>春款真皮坡跟大码单鞋内...</p>
                    <button>加入购物车</button>
                </dd>
            </dl>

            <dl data-id="id02">
                <dt>
                    <img src="../img/2.jpg" />
                </dt>
                <dd>
                    <strong>¥289.00</strong>
                    <p>春款真皮坡跟大码单鞋内...</p>
                    <button>加入购物车</button>
                </dd>
            </dl>

            <dl data-id="id03">
                <dt>
                    <img src="../img/3.jpg" />
                </dt>
                <dd>
                    <strong>¥299.00</strong>
                    <p>春款真皮坡跟大码单鞋内...</p>
                    <button>加入购物车</button>
                </dd>
            </dl>

            <dl data-id="id04">
                <dt>
                    <img src="../img/4.jpg" />
                </dt>
                <dd>
                    <strong>¥309.00</strong>
                    <p>春款真皮坡跟大码单鞋内...</p>
                    <button>加入购物车</button>
                </dd>
            </dl>
        </div>
    </body>
</html>

CSS部分

@charset "utf-8";
/*body,html{
    height:100% ;
}*/
#goods{
    width: 820px;
    margin: 100px auto;
}
#goods dl{
    height: 376px;
    width: 180px;
    border: solid 1px #e0e0e0;
    padding: 10px 9px 8px 9px;
    float: left;
    margin-right: 5px;
}
#goods dl dt {
    height: 239px;
    width: 180px;
}
#goods dl dd strong{
    display: block;
    height: 61px;
    line-height: 61px;
    font-size: 16px;
    color: #ff3300;
    text-align: center;
    font-weight: 900;
}
#goods dl dd p{
    height: 27px;
    line-height: 27px;
    font-size: 14px;
    text-align: center;
}
#goods dl dd button{
    width: 144px;
    height: 39px;
    line-height: 39px;
    text-align: center;
    background: #f99c1b;
    color: #fef4e9;
    outline: none;
    border: solid 1px #da7c0c;
    border-radius: 5px;
    margin:6px 0 0 17px;
    font-size: 16px;
}

#aside-cart{
    position: fixed;
    top: 0;
    right: 0;
    width:35px;
    height: 100%;
    background: #000000;
    color: #FFFFFF;
    text-align: center;
    padding: 200px 0 0 0;
    cursor: pointer;
}
#aside-cart span{
    display: block;
    font-size: 20px;
}
#aside-cart span img{
    display: block;
}

js部分

window.onload = function(){
   

    var addBtns = document.getElementsByTagName('button');   //加入购物车按钮
    var goods = $('goods');             //商品列表的外围div,用于事件委托
    var asideCart = $('aside-cart');    //右侧侧边栏


//==================================鼠标按下加入购物车===========================

    goods.onmousedown = function(evt){
      //鼠标按下加入购物车,事件委托
        var e = evt || window.event;
        var target = e.target || e.srcElement;    

        addCookie(target);   //   添加商品信息到cookie中,addCookie()是封装的方法

        while(target != null){   //判断真实发生事件的对象
            if(target.nodeName.toLowerCase() == 'button'){
                target.style.backgroundColor = '#f06015';
                break;
            }
            target = target.parentNode;
        }

        goods.onmouseup = function(){
       //鼠标抬起,事件委托
            var e = evt || window.event;
            var target = e.target || e.srcElement;

            while(target != null){
                if(target.nodeName.toLowerCase() == 'button'){
                    target.style.backgroundColor = '#f99c1b';
                }
                target = target.parentNode;
            }

        }
    };


//==================================点击购物车结算==================================

    asideCart.onclick = function(){
   
        location.href = 'JD Cart.html';

    };

};  //window.onload结束




//==================================向cookie中添加商品信息==========================

function addCookie(target){
   
    var parent = target.parentNode.parentNode;  //dl节点 

    var goodsMessage = [{   //用于保存商品信息
        id:parent.getAttribute('data-id'),
        imgSrc:parent.getElementsByTagName('img'
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Python中实现一个简单购物车结算功能,通常涉及到以下几个步骤: 1. **创建商品类**:定义一个商品类(例如`Product`),包含属性如名称、价格、数量等。 ```python class Product: def __init__(self, name, price): self.name = name self.price = price self.quantity = 0 def set_quantity(self, quantity): self.quantity = quantity def get_total_cost(self): return self.price * self.quantity ``` 2. **购物车类**:创建一个购物车类(例如` ShoppingCart`),用于存储商品和处理结算。 ```python class ShoppingCart: def __init__(self): self.items = [] def add_item(self, product, quantity=1): item = product item.set_quantity(quantity) self.items.append(item) def remove_item(self, product_name, quantity=None): for item in self.items: if item.name == product_name: if quantity is not None: item.set_quantity(item.quantity - quantity) else: self.items.remove(item) break def total_cost(self): return sum(item.get_total_cost() for item in self.items) ``` 3. **使用示例**: ```python # 创建商品实例 apple = Product("Apple", 1.5) banana = Product("Banana", 0.5) # 添加商品购物车 cart = ShoppingCart() cart.add_item(apple, 3) cart.add_item(banana, 2) # 结算 print(f"Total cost: {cart.total_cost():.2f}") # 删除商品 cart.remove_item("Apple", 1) print(f"New total cost after removing an apple: {cart.total_cost():.2f}") ``` 这个例子中,购物车可以添加商品,查询总成本,以及删除特定商品。你可以根据需求扩展购物车的功能,比如计算优惠后的总价、查看购物车内容等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值