ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 6\. jQuery元素操作 主要是遍历、创建、添加、删除元素操作。 ## 6.1遍历元素 jQuery隐式迭代是对同一类元素做了同样的操作。如果想要给同一类元素做不同操作,就需要用到遍历。 语法1: ~~~ $ ( "div" ).each(function (index,domEle) { xxx; } ) ~~~ 1.each()方法遍历匹配的每一个元素。主要用DOM处理。each每一个 2.里面的回调函数有2个参数:index是每个元素的**索引号**; demEle是每个DOM元素对象,不是jquery对象 3.所以要想使用jquery方法,需要给这个dom元素转换为jquery对象$(domEle) ![](https://img.kancloud.cn/ac/c8/acc821e2231d4af0d647ddab38c0d42c_1080x729.png) 语法2 : ~~~ $.each (object , function (index, element) { xxx; } ) ~~~ 1.$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象 2.里面的函数有2个参数: index 是每个元素的索引号; element遍历内容 ![](https://img.kancloud.cn/5d/1b/5d1bb0cb4b739ea63d540fcfd6a1cd5d_748x419.png) ![](https://img.kancloud.cn/4e/5a/4e5ae20402eb86aee145d90a19df5eb2_778x328.png) ## 6.2创建元素 语法︰ ~~~ $("<li></li>"); ~~~ ![](https://img.kancloud.cn/22/7c/227c0790733a44219e2d84ad9db832e2_609x74.png) 动态的创建了一个`<li>` ## 6.3添加元素 ### 1.内部添加 (①内部添加元素,生成之后,它们是父子关系。) ~~~ element.append("内容") ~~~ ![](https://img.kancloud.cn/ac/0c/ac0ce55f1c2d56c1ca91324770ff34a6_328x52.png) 把内容放入匹配元素内部最后面,类似原生appendChild。 ~~~ element.prepend("内容") ~~~ 把内容放入匹配元素内部最前面。 ### 2.外部添加 (②外部添加元素,生成之后,他们是兄弟关系。) ~~~ element.after("内容") ~~~ ![](https://img.kancloud.cn/6b/44/6b44420e3a1bb8698c92a03ae9c05a40_624x147.png) //把内容放入目标元素后面 ~~~ element.before("内容') ~~~ // 把内容放入目标元素前面 ## 6.4删除元素 ~~~ element.remove() //删除匹配的元素(本身) element.empty() //删除匹配的元素集合中所有的子节点 element.htmI("")//清空匹配的元素内容 ~~~ ~~~ // 3.删除元素 $("ul").remove(); 可以删除匹配的元素自杀 $("ul"). empty(); //可以删除匹配的元素里面的子节点孩子 $("ul").html(""); //可以删除匹配的元素里面的子节点孩子 ~~~ # 案例: 购物车案例模块**计算总计和总额** ~~~ ①核心思路:把所有文本框里面的值相加就是总计数量。总额同理 ②文本框里面的值不相同,如果想要相加需要用到each遍历。声明一个变量,相加唧可 ③点击+号-号,会改变总计和总额,如果用户修改了文本框里面的值同样会改变总计和总额 ④因此可以封装-个函数求总计和总额的 ,以上2个操作调用这个函数即可。 ⑤注意1 :总计是文本框里面的值相加用val()总额是普通元素的内容用text() ⑥要注意普通元素里面的内容要去掉¥并且转换为数字型才能相加 ~~~ ## 代码实验 (封装一个函数计算) ![](https://img.kancloud.cn/e4/66/e466a6b5c718439ad6d3f967a83f7318_868x483.png) 然后+ — 就调用一遍 ![](https://img.kancloud.cn/e6/e9/e6e99a9b84dfa6f1091dc86c5b2af99d_1210x386.png) + ![](https://img.kancloud.cn/63/2a/632aa03d174d9eafb09a9bab7222b30f_1038x319.png) — ![](https://img.kancloud.cn/22/31/223153edb9b7ff563067293a3766b6c0_1120x367.png) # 案例:购物车案例模块**删除商品模块** ![](https://img.kancloud.cn/74/de/74dee52bff5a59b0bd9600498b69afc7_1454x541.png) ~~~ ①核心思路:把商品remove()删除元素即可 ②有三个地方需要删除: 1. 商品后面的删除按钮2.删除选中的商品3.清理购物车 ③商品后面的删除按钮:一定是删除当前的商品 ,所以从$(this)出发 ④删除选中的商品:先判断小的复选框按钮是否选中状态,如果是选中,则删除对应的商品 ~~~ ![](https://img.kancloud.cn/99/c7/99c77e6a1abf7f4ea3d4c6a4868c46b8_960x111.png) ![](https://img.kancloud.cn/6d/ae/6dae5b32d8130d7eb51fe622b4f83e56_1146x707.png) ## 代码实验 ![](https://img.kancloud.cn/ff/4c/ff4c530472096c11e53d7b59e3e165c9_938x619.png) # 案例:购物车案例模块选中商品**添加背景** ![](https://img.kancloud.cn/b1/12/b112132831141764f49c9b40796558d8_1503x480.png) ~~~ ①核心思路:选中的商品添加背景,不选中移除背景即可 ②全选按钮点击:如果全选是选中的,则所有的商品添加背景,否则移除背景 ③小的复选框点击:如果是选中状态,则当前商品添加背景,否则移除背景 ④这个背景,可以通过类名修改,添加类和删除类 ~~~ ![](https://img.kancloud.cn/73/34/733442a11b7ce2d4b0d8a5a2eeddf061_674x136.png) ## 代码实验 1.全选 ![](https://img.kancloud.cn/09/62/09626b890ef4f679ebaf63fd29e25252_1235x517.png) 2.单选 ![](https://img.kancloud.cn/cf/74/cf74c329ece8069573cd883f8a7528af_1073x642.png) ![](https://img.kancloud.cn/6e/72/6e72d77edddbdce1bd6314335cfcf4fc_1028x415.png)