最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
jQuery增加删除HTML标签实例详解
时间:2013-10-14 编辑:简简单单 来源:一聚教程网
昨天在写 jQuery 的时候碰到个小问题纠结了我蛮久,后来在 foxling 的指点下才知道是那么一回事。
问题是这样滴,有一个 UL 列表,在某个事件响应之后要把 UL 列表里面的 LI 内容给逐行移除掉,于是有了下面的 HTML 代码:
代码如下 | 复制代码 |
删除 |
以及下面的 JavaScript 代码:
代码如下 | 复制代码 |
$('#del').click(function(){ var list = $('#test'); var len = list.find('li').length; for(var i = 0; i < len; i++){ list.find('li:eq('+ i +')').remove(); } }); |
我刚写完的时候觉得逻辑很合理,应该没什么问题,先计算出 UL 标签里面有多少个 LI ,然后利用 For 循环逐个把里面每个 LI 的内容移除掉,但是代码一执行的时候,问题就出来了,它并没有把里面的内容全部移除掉,而是还有一些 LI 遗留在页面上。
代码如下 | 复制代码 |
删除 。 |
后来在 foxling 的指点下,才得知这其中的原因,就是当 i 等于 0 的时候,这时是正确的删除了第一个 LI 标签(其索引为 0);当 i 等于 1 的时候,原来列表中的第 2 个 LI 标签的索引由于前一个 LI 标签被删除的原因从 1 变成了 0,所以该 LI 标签并没有被移除,而此时被移除的是原来列表中的第 3 个 LI 标签,此时它的索引已变为 1 了,如此循环……这就是为什么执行完该 for 循环之后还有一些内容没有被移除的原因了。
上面的 JavaScript 只要修改一点点的地方就 OK 了:
代码如下 | 复制代码 |
$('#del').click(function(){ |
例
代码如下 | 复制代码 |
再看执行js后效果: |
对比一下就知道啦.li的id为fileid18的被删除了.
主要代码如下:
代码如下 | 复制代码 |
$('li').remove('#fileid'+fid); |
例2
代码如下 | 复制代码 |
|
-
上一个: js实现网页标题栏闪烁提示效果代码
相关文章
- HTML简单购物数量小程序代码展示 10-31
- html canvas实现弹幕功能 10-31
- HTML中空格表示的意义 10-31
- html area标签解读 10-31
- html使用表单标签实现注册页面代码展示 10-31
- 使用HTML截图并保存为本地图片的代码展示 10-31