jquery未定义_使用jquery代码,完成京东的购物车基本效果制作

本文档介绍了如何使用jQuery代码来制作京东购物车的基本功能,包括项目时长、环境和涉及的知识点。在实现过程中遇到了jQuery代码因中文标点导致的运行错误,通过逻辑分析而非逐行检查最终定位并修复了问题,强调了逻辑推敲在查找代码错误中的重要性。
摘要由CSDN通过智能技术生成

a08cf60adc1b0c1b183ae8a45d15c120.png

一、使用jQuery代码,完成京东购物车的基本效果制作

二、项目信息

项目时长:2小时

项目环境:HBuilder

项目所用知识点:jQuery

HTML代码:

<!DOCTYPE html><html><head><meta charset="utf-8"><title>京东购物车页面</title><link rel="stylesheet" href="css/reset.css" /><link rel="stylesheet" href="css/jd.css" /><link rel="stylesheet" href="icon/iconfont.css" /><!--必须先引用jquery1.9.1的文件,否则会一直报错:$未定义--><script type="text/javascript" src="js/jquery-1.9.1.js" charset="utf-8"></script><script type="text/javascript" src="js/jd.js" charset="utf-8"></script></head><body><!-- 导航开始--><div class="top"><div class="warp"><ul class="nav_ul1"><li><a href="" style="margin-right: 20px;"><i class="iconfont"></i>京东首页</a></li><li><a href=""><i class="iconfont"></i>配送到:北京</a></li></ul><ul class="nav_ul2"><li><a href="">成俊敏</a><span>|</span></li><li><a href="">我的订单</a><span>|</span></li><li><a href="">我的京东</a><span>|</span></li><li><a href="">京东会员</a><span>|</span></li><li><a href="">企业采购</a><span>|</span></li><li><a href="">京东手机</a><span>|</span></li><li><a href="">关注京东</a><span>|</span></li><li><a href="">客户服务</a><span>|</span></li><li><a href="">网站导航</a><span>|</span></li></ul></div></div><!--导航结束 --><!--搜索logo部分 --><div class="search"><div class="warp"><img src="img/logo.jpg" /><div class="search_div"><input type="text" placeholder="自营" class="search_text"/><input type="button" class="search_button" value="搜索" /></div></div></div><!--搜索框结束--><!-- 标题栏开始 --><div class="title"><h3>全部商品</h3><div><span>配送至</span><select><option>昌平区</option><option>顺义区</option><option>大兴区</option><option>朝阳区</option><option>海淀区</option></select></div></div><!-- 标题栏结束 --><!--显示菜单开始--><div class="tips warp"><ul><li> <input type="checkbox" name="favs"/> 全选</li><li>商品 </li><li> 单价</li><li> 数量</li><li> 小计</li><li> 操作</li></ul></div><!--显示菜单结束--><!--商品部分开始--><div class="info warp"><ul><li class="info_1"><input type="checkbox" name="fav"/> </li><li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li><li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li><li class="info_4"><a>颜色:灰色+粉红</a> </li><li class="info_5"><a>¥182.5</a></li><li class="info_6"><button name="sub" value="0">-</button><input type="text" value="1"/><button name="add" value="1">+</button> </li><li class="info_7">¥182.5</li><li><a href="javascript:viod(0)" name="del">删除</a><br /><a>移到我的关注</a></li></ul></div><div class="info warp"><ul><li class="info_1"><input type="checkbox" name="fav"/> </li><li class="info_2"> <img src="img/img3.jpg" width="80px"/> </li><li class="info_3"><a>【京东超市】好孩子婴儿柔护洗衣液</a></li><li class="info_4"><a>大小:1000毫升装</a> </li><li class="info_5"><a>¥35</a></li><li class="info_6"><button name="sub" value="0">-</button><input type="text" value="1"/><button name="add" value="1">+</button> </li><li class="info_7">¥35</li><li><a href="javascript:viod(0)" name="del">删除</a><br /><a>移到我的关注</a></li></ul></div><div class="info warp"><ul><li class="info_1"><input type="checkbox" name="fav"/> </li><li class="info_2"> <img src="img/img1.jpg" width="80px"/> </li><li class="info_3"><a>【京东超市】desha春秋季儿童休闲服</a></li><li class="info_4"><a>颜色:灰色+粉红</a> </li><li class="info_5"><a>¥182.5</a></li><li class="info_6"><button name="sub" value="0">-</button><input type="text" value="1"/><button name="add" value="1">+</button></li><li class="info_7">¥182.5</li><li><a href="javascript:viod(0)" name="del">删除</a><br /><a>移到我的关注</a></li></ul></div><!--商品详情展示结束--><!--结算的开始--><div class="balance warp" ><ul class="balance_ul1"><li><input type="checkbox" name="favs"/>全选</li><li><a href="">删除选中的商品</a></li><li><a href="">移到我的关注</a></li><li><a href="">清理下柜商品</a></li></ul><ul class="balance_ul2"><li>已选择<span id="snum">0</span>件商品</li><li>总价<span id="zongz">¥0.00</span></li><li><button>去结算</button></li></ul></div><!--结算的结束--></body></html>

jQuery代码:

$(function(){//如果全选,则单选框和另一个全选框都勾选$("input[name=favs]").click(function(){/*得到全选的checked属性,返回值是true或false*/var flag=$(this).prop("checked");$("input[name=fav],input[name=favs]").prop("checked",flag);})//删除$("a[name=del]").click(function(){$(this).parent().parent().parent().remove();})//如果单选框有任意一个没选,则全选框不勾$("input[name=fav],input[name=favs],a[name=del]").click(function(){/*得到所有单选框*/var fav=$("input[name=fav]");var flag=true;fav.each(function(){if(!$(this).prop("checked")){flag=false;return;}})//单选都勾上,则全选勾上$("input[name=favs]").prop("checked",flag);//统计商品总数和总价var snum=0;//总件数var zongz=0;//总价fav.each(function(){var th=$(this);if(th.prop("checked")){snum=snum+Number(th.parent().parent().children().eq(5).children().eq(1).val());zongz=zongz+Number(th.parent().parent().children().eq(6)[0].innerText.substr(1));}})$("#zongz").text(zongz);$("#snum").text("¥"+snum);})//增减数量$("button[name=add],button[name=sub],a[name=del]").click(function(){var th=$(this);/*获取单价*/var dj=Number(th.parent().prev()[0].innerText.substr(1));/*获取单项总价*/var zj1=Number(th.parent().next()[0].innerText.substr(1));/*获取总件数*/var snum=Number($("#snum").text());/*获取总价*/var zongz=Number($("#zongz")[0].innerText.substr(1));if(th.val()==0){if(th.next().val()>0){//判断/*减*/th.next().val(Number(th.next().val())-1);th.parent().next().text("¥"+(zj1-dj));//console.log(th.parent().parent().children().eq(0).children().prop("checked"));if(th.parent().parent().children().eq(0).children().prop("checked")){//判断是否被选中,若被选中则总件数和总价减少$("#snum").text(snum-1);$("#zongz").text("¥"+(zongz-dj));}} }else{/*加*/th.prev().val(Number(th.prev().val())+1);th.parent().next().text("¥"+(zj1+dj));if(th.parent().parent().children().eq(0).children().prop("checked")){//判断是否被选中,若被选中则总件数和总价增加$("#sunm").text(snum+1);$("#zongz").text("¥"+(zongz+dj)); }} })})

三,BUG与心得

在写jquery代码过程中,$里面的代码,标点写成了中文格式,导致运行时总是不能统计上商品的总价和总数,查找了很多次错误也没有发现,对比其他同学作业,逐行找错误,进行对比,把整个Html又仔细翻看了一遍,后来还是从逻辑上找原因,终于发现错误代码块出现在什么地方。有这次教训,有了一个深刻的心得,与其费劲心力的从头翻看代码,不如推敲逻辑,能更快找出代码的错误。

四,项目运行图:

8186e1645342abe56c723a1b793ead8c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值