`

循环removeChild要注意对DOM的即时影响

阅读更多

有这么一段代码:

<ul id="demo">
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
 

 

var ul = document.getElementById('demo');
var liList = ul.getElementsByTagName('li');
for (var i = 0; i < = liList.length; i++) {
ul.removeChild(liList[i]);
}

运行代码后 ,发现只剩下 节点b  了。

 

var ul = document.getElementById('demo');
var liList = ul.getElementsByTagName('li');
for (var i = 0; i <  liList.length; i++) {
 ul.removeChild(liList[0]);
}

 运行上面代码后,发现只剩下 节点c 了。

 

最后把length 提取出来, 先定义,缓存起来。

var ul = document.getElementById('demo');
var liList = ul.getElementsByTagName('li');
var lilength =  liList.length;
for (var i = 0; i < lilength; i++) {
ul.removeChild(liList[0]);
}

 运行代码,才真正3个li都被删除。

 

通过这3个例子的对比,相信你已经发现其中的问题。

可以看出removeChild 删除元素后,对DOM的即时影响。

0
0
分享到:
评论

相关推荐

    javascript DOM操作之动态删除TABLE多行

    需要注意的是,在删除DOM节点时,如果之前有通过脚本为这些节点绑定了事件监听器或其他数据,那么这些绑定的监听器或数据也会被一同删除,因此要确保在删除节点之前已经妥善处理了这些绑定。 此外,虽然可以直接...

    JS实现左边的下拉框内容移动到右边下拉框,支持内容上下移动

    同时,避免不必要的DOM操作,因为这可能会导致页面重绘,影响性能。 综上所述,实现这个功能需要扎实的JavaScript基础,熟练的DOM操作,良好的事件处理逻辑,以及一定的前端开发经验。通过实践这个项目,你不仅可以...

    JavaScript语言精粹.pdf

    - **添加/删除元素**:使用`appendChild()`、`removeChild()`等方法添加或删除DOM节点。 #### 六、事件处理 - **事件绑定**:使用`addEventListener()`或`attachEvent()`方法将事件处理器绑定到DOM元素上。 - **...

    javascript

    以下是对该主题的深入探讨: #### 1. **JavaScript简介** - **定义**:JavaScript是一种轻量级的解释型或即时编译型的编程语言,常用于Web应用开发。 - **历史背景**:1995年由Netscape公司的Brendan Eich设计...

    JS留言板添加和删除特效代码

    2. **添加功能**:在JS留言板中,添加功能意味着用户可以输入文本,点击“发送”按钮后,新的留言会即时显示在页面上。这涉及到DOM(Document Object Model)操作,如创建新的DOM元素(如`&lt;div&gt;`、`&lt;p&gt;`等)来存储...

    javascript语言精粹

    - **定义**:JavaScript是一种轻量级的解释型或即时编译型的编程语言。它既是一种强大的客户端脚本语言,用于HTML网页开发,同时也是一种服务端编程语言,如Node.js。 - **历史**:由网景公司(Netscape)的布兰登·...

    aboutus:印花布奶酪!

    1. **基础语法**:JavaScript的基础包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔、数组、对象)、控制流程(if...else、for、while循环)和函数。理解这些基本概念是学习JavaScript的第一步。 ...

    web前端开发基础知识总结

    JavaScript 是一种轻量级的解释型或即时编译型编程语言,常用于Web应用程序的客户端脚本语言,能够实现交互性效果。 **3.2 基本语法** - **变量**: 如 `var x = 10;`。 - **数据类型**: 数值、字符串、布尔值、...

    CSC3916_HW3

    例如,通过getElementById、getElementsByClassName、getElementsByTagName等方法选取元素,使用innerHTML、textContent属性改变元素内容,以及appendChild、removeChild等方法处理元素的增删。 3. **事件处理**:...

    蛇形的

    例如,使用document.getElementById、querySelectorAll等方法选择元素,innerHTML、textContent属性改变元素内容,appendChild、removeChild操作元素。 7. **AJAX与Fetch API**:用于异步获取服务器数据,更新部分...

    javascript 快速入门教程,javascript面向对象编程

    JavaScript 是一种解释型语言,在浏览器中被即时解释执行。当浏览器加载含有 JavaScript 代码的网页时,会自动解析并执行这些代码,从而实现动态效果。JavaScript 还可以与 HTML 和 CSS 紧密结合,共同构建复杂的 ...

    pad:WIP - 概念计算板

    4. **DOM操作**:通过JavaScript操作HTML元素,如getElementById, getElementsByClassName, appendChild, removeChild等。 5. **事件处理**:addEventListener, removeEventListener, 以及各种浏览器事件。 6. **...

Global site tag (gtag.js) - Google Analytics