jQuery中~购物车全选按钮的制作与优化

购物车全选按钮的制作与优化

第一步:了解jQuery中表单选择器的使用

选择器说明
:input选取所有 input 元素
:button选取所有普通按钮,即<input type ="button" />
:submit选取所有提交按钮,即<input type ="submit" />
:reset选取所有重置按钮,即<input type = "reset" />
:text选取所有单行文本框
:textarea选取所有多行文本框
:password选取所有密码文本框
:radio选取所有单选框
:checkbox选取所有复选框
:image选取所有图片域
:file选取所有文件域

第二部:分析案例需求

全选思路∶里面3个小的复选框按钮(j-checkbox )选中状态( checked )跟着全选按钮( checkall )走。因为checked是复选框的固有属性,此时我们需要利用prop()方法获取和设置该属性。
把全选按钮状态赋值给3小复选框就可以了。当我们每次点击小的复选框按钮,就来判断:如果小复选框被选中的个数等于3就应该把全选按钮选上,否则全选按钮不选。

第三部:jQuery编写

先得到一个input中的数值将值赋值给变量其次给变量拿出来做--操作,减完在把值赋值给input,对input内容进行修改

parents():方法可以返回指定的祖先元素

to.Fixed(参数):对数值返回指定的小数位数,参数是我们需要保留的小数位

截取字符串:substr(1)

var n=22;

n.toFixed(3);//return  22.00 
 

// 1.获取设置元素内容 html()

console.log($( "div" ).htm1());

改值:// $( "div" ).html("123"); 
// 2.获取设置元素文本内容 text()

console.log($("div" ).text());

改值:$("div").text( "123"); 
// 3.获取设置表单值val() 
console.log($( "input").val());

改值:$( "input").va1( "123");

jQuery方法遍历元素(第一种方法)
jQuery隐式迭代是对同一类元素做了同样的操作。如果想要给同一类元素做不同操作,就需要用到遍历。
语法1:


$ ( "div" ) .each (function (index,domEle) { xxx; })

1.each()方法遍历匹配的每一个元素。主要用DOM处理。each每一个
⒉里面的回调函数有2个参数: index是每个元素的索引号; domEle是每个DOM元素对象
不是jquery对象
3.所以要想使用jquery方法,需要给这个dorn元素转换为jquery对象$(domEle)

jQuery方法遍历元素(第二种方法)


$.each (object , function (index,element){ xxx; })


1. $.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象

⒉.里面的函数有2个参数: index是每个元素的索引号; element遍历内容
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴为您提供购物车功能的HTML代码实现,以下是完整的HTML代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>购物车</title> </head> <body> <h1>购物车</h1> <table> <thead> <tr> <th><input type="checkbox" id="check-all"></th> <th>商品名称</th> <th>单价</th> <th>数量</th> <th>小计</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox" class="check-item"></td> <td>商品1</td> <td>10</td> <td><button class="reduce-btn">-</button><span class="count">1</span><button class="add-btn">+</button></td> <td class="subtotal">10</td> <td><button class="delete-btn">删除</button></td> </tr> <tr> <td><input type="checkbox" class="check-item"></td> <td>商品2</td> <td>20</td> <td><button class="reduce-btn">-</button><span class="count">1</span><button class="add-btn">+</button></td> <td class="subtotal">20</td> <td><button class="delete-btn">删除</button></td> </tr> <tr> <td><input type="checkbox" class="check-item"></td> <td>商品3</td> <td>30</td> <td><button class="reduce-btn">-</button><span class="count">1</span><button class="add-btn">+</button></td> <td class="subtotal">30</td> <td><button class="delete-btn">删除</button></td> </tr> </tbody> <tfoot> <tr> <td colspan="6"> <button id="delete-all-btn">删除选商品</button> <span>总计:<span id="total-count">0</span>件商品,总额:<span id="total-price">0</span>元</span> </td> </tr> </tfoot> </table> <script> var checkAll = document.getElementById('check-all') var checkItems = document.getElementsByClassName('check-item') var reduceBtns = document.getElementsByClassName('reduce-btn') var addBtns = document.getElementsByClassName('add-btn') var deleteBtns = document.getElementsByClassName('delete-btn') var deleteAllBtn = document.getElementById('delete-all-btn') var totalCount = document.getElementById('total-count') var totalPrice = document.getElementById('total-price') // 全选 checkAll.onclick = function() { for (var i = 0; i < checkItems.length; i++) { checkItems[i].checked = this.checked } getTotal() } // 单选 for (var i = 0; i < checkItems.length; i++) { checkItems[i].onclick = function() { var flag = true for (var j = 0; j < checkItems.length; j++) { if (!checkItems[j].checked) { flag = false break } } checkAll.checked = flag getTotal() } } // 增加数量 for (var i = 0; i < addBtns.length; i++) { addBtns[i].onclick = function() { var countInput = this.parentNode.querySelector('.count') var count = parseInt(countInput.innerText) count++ countInput.innerText = count getSubtotal(this.parentNode.parentNode) getTotal() } } // 减少数量 for (var i = 0; i < reduceBtns.length; i++) { reduceBtns[i].onclick = function() { var countInput = this.parentNode.querySelector('.count') var count = parseInt(countInput.innerText) if (count > 1) { count-- countInput.innerText = count getSubtotal(this.parentNode.parentNode) } getTotal() } } // 计算小计 function getSubtotal(tr) { var price = tr.querySelector('td:nth-child(3)').innerText var count = tr.querySelector('.count').innerText var subtotal = parseInt(price) * parseInt(count) tr.querySelector('.subtotal').innerText = subtotal } // 删除商品 for (var i = 0; i < deleteBtns.length; i++) { deleteBtns[i].onclick = function() { var tr = this.parentNode.parentNode tr.parentNode.removeChild(tr) getTotal() } } // 删除选商品 deleteAllBtn.onclick = function() { for (var i = 0; i < checkItems.length; i++) { if (checkItems[i].checked) { var tr = checkItems[i].parentNode.parentNode tr.parentNode.removeChild(tr) i-- } } getTotal() } // 计算总计和总额 function getTotal() { var totalCountNum = 0 var totalPriceNum = 0 for (var i = 0; i < checkItems.length; i++) { if (checkItems[i].checked) { var tr = checkItems[i].parentNode.parentNode var count = parseInt(tr.querySelector('.count').innerText) var price = parseInt(tr.querySelector('.subtotal').innerText) totalCountNum += count totalPriceNum += price } } totalCount.innerText = totalCountNum totalPrice.innerText = totalPriceNum } </script> </body> </html> ``` 该购物车功能实现了以下功能: 1. 全选/取消全选; 2. 单选/取消单选; 3. 增加/减少商品数量; 4. 计算商品小计; 5. 删除单个商品; 6. 删除选商品; 7. 计算总计和总额。 您可以在浏览器打开该HTML文件,进行购物车功能的使用和测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值