【注意】js 里面 removeChild 使用的坑

本文深入探讨了在使用DOM操作时常见的误区与正确实践,包括循环删除子元素的正确方式、元素绑定事件的注意事项以及如何避免事件绑定丢失等问题。

这有坑啊,使用removeChild 循环删除 子元素们的时候 是【0】而不是【i】

这是因为 你每次删完一个 子元素们的 下标就会发生改变

比如 allSpan【0】 allSpan【1】

removeChild(allSpan【0】) 以后 ,allSpan【1】 就不再是 allSpan【1】了,而变成了allSpan【0】;

所以需要删除 allSpan【0】 N次就好了。

 

另外

找不到爹,想删除自己的时候,可以先找一下父级,再进行删除

 

当然 删除自己 也可以使用 自己.remove

 

另另外 

如果删除了父级元素,那么子集元素是不会被保留的~~~

倾巢之下,岂有完卵!!!

 

另另另外

div2 是 div1 的孩子,当div1 .innerHTML 发生改变的时候,他会先清空在他名下的元素,所以导致了div1 的子元素 div2 之前绑定的事件也失效了 ,所以。。。 

【解决方案】

先给div1 的innerHTML赋值,然后在做其他绑定事件。。。

或者 是使用 事件委托 ~~~

`removeChild` 是 DOM(文档对象模型)中用于移除子节点的方法。它通常用于操作 HTML 文档中的元素节点。以下是 `removeChild` 方法的详细介绍和使用示例: ### `removeChild` 方法介绍 `removeChild` 方法用于从父节点中移除指定的子节点。该方法属于父节点对象,通过父节点调用,并接收要移除的子节点作为参数。 ### 语法 ```javascript parentNode.removeChild(childNode); ``` - `parentNode`:要移除子节点的父节点。 - `childNode`:要移除的子节点。 ### 使用示例 假设有以下 HTML 结构: ```html <div id="parent"> <p id="child">这是一个子节点</p> </div> ``` 我们可以使用 JavaScript 来移除这个子节点: ```javascript // 获取父节点 var parent = document.getElementById("parent"); // 获取要移除的子节点 var child = document.getElementById("child"); // 移除子节点 parent.removeChild(child); ``` ### 注意事项 1. **父节点必须存在**:要移除子节点,必须确保父节点存在且正确获取。 2. **子节点必须是父节点的直接子节点**:要移除的子节点必须是父节点的直接子节点,而是孙节点或其他后代节点。 3. **移除后的节点仍然存在**:被移除的节点仍然存在于内存中,可以重新添加到 DOM 中。 ### 重新添加被移除的节点 被移除的节点可以通过 `appendChild` 或 `insertBefore` 方法重新添加到 DOM 中: ```javascript // 重新添加被移除的节点 parent.appendChild(child); ``` ### 完整示例 以下是一个完整的示例,展示如何使用 `removeChild` 方法移除一个子节点并重新添加它: ```html <!DOCTYPE html> <html> <head> <title>removeChild 示例</title> </head> <body> <div id="parent"> <p id="child">这是一个子节点</p> </div> <button onclick="removeChildNode()">移除子节点</button> <button onclick="addChildNode()">重新添加子节点</button> <script> function removeChildNode() { var parent = document.getElementById("parent"); var child = document.getElementById("child"); parent.removeChild(child); } function addChildNode() { var parent = document.getElementById("parent"); var child = document.getElementById("child"); parent.appendChild(child); } </script> </body> </html> ``` 通过这个示例,你可以点击按钮来移除和重新添加子节点。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值