1. 概述删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置。
当你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新
// 拿到待删除节点:var self = document.getElementById("to-be-removed");// 拿到父节点:var parent = self.parentElement;// 删除:var removed = parent.removeChild(self);removed === self; // true
2. example<!DOCTYPE html><html><head></script></head><body><ul id="test-list"><li>JavaScript</li><li>Swift</li><li>HTML</li><li>ANSI C</li><li>CSS</li><li>DirectX</li></ul><script>var p= document.getElementById("test-list");var length = p.children.length;var i=0;for(; i<length; ){var li = p.children[i];var text = li.innerText;if(text!=="JavaScript" && text!=="HTML" && text!=="CSS"){p.removeChild(li);alert(p.children.toString());length--;}else{i++;}}// 测试:;(function () {vararr, i,t = document.getElementById("test-list");if (t && t.children && t.children.length === 3) {arr = [];for (i = 0; i < t.children.length; i ++) {arr.push(t.children[i].innerText);}if (arr.toString() === ["JavaScript", "HTML", "CSS"].toString()) {alert("测试通过!");}else {alert("测试失败: " + arr.toString());}}else {alert("测试失败!");}})();</script></body></html>
以上这篇js removeChild 方法深入理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。