JavaScript DOM节点列表完全指南
编程小白也能懂的DOM节点知识汇总
什么是DOM节点?
想象一下,一个网页就像一棵倒挂的树🌲,树干是根节点,树枝是元素节点,树叶是文本节点。DOM(文档对象模型)就是浏览器用来表示这个结构的模型。
在DOM中,节点(Node)是构成这个树结构的基本单位。网页中的每个部分都是一个节点:
例如:下面这段HTML代码包含了多种节点类型:
<!-- 这是一个注释节点 --> <div id="container"> <!-- 元素节点 --> <h1>标题</h1> <!-- 元素节点 --> 这是一段文本 <!-- 文本节点 --> </div>
节点类型
DOM中有12种节点类型,但最常用的有:
节点类型关系图
元素节点
<div>
<div>
文本节点
“一些文本”
“一些文本”
1. 元素节点 (Node.ELEMENT_NODE – 1)
HTML标签元素,如 <div>
、<p>
、<a>
等。
2. 文本节点 (Node.TEXT_NODE – 3)
元素内的文本内容,如 <p>这是一个文本节点</p>
中的”这是一个文本节点”。
3. 注释节点 (Node.COMMENT_NODE – 8)
HTML注释,如 <!-- 这是注释 -->
。
小贴士: 你可以通过节点的 nodeType
属性来判断节点类型:
if (element.nodeType === Node.ELEMENT_NODE) { console.log("这是一个元素节点"); }
什么是节点列表?
节点列表(NodeList) 是DOM中多个节点的集合,看起来像一个数组,但又不是真正的数组。
当你使用 document.querySelectorAll()
或访问 element.childNodes
属性时,返回的就是一个节点列表。
示例:获取节点列表
// 获取所有 <p> 标签的节点列表 const paragraphs = document.querySelectorAll('p'); // 获取某个元素的所有子节点 const container = document.getElementById('container'); const childNodes = container.childNodes;
重要: 节点列表是”实时”(live)或”静态”(static)的:
childNodes
返回的是实时列表 – 当DOM变化时,列表会自动更新querySelectorAll
返回的是静态列表 – 获取后不会随DOM变化而更新
操作节点列表
节点列表虽然不是真正的数组,但你可以使用以下方式操作它:
1. 遍历节点列表
// 方法1: for循环 const items = document.querySelectorAll('.item'); for (let i = 0; i < items.length; i++) { console.log(items[i]); } // 方法2: forEach方法 (现代浏览器支持) items.forEach(item => { console.log(item); }); // 方法3: 转换为数组后再遍历 const itemsArray = Array.from(items); itemsArray.forEach(item => { console.log(item); });
2. 访问节点
// 获取第一个节点 const firstNode = items[0]; // 或 items.item(0) // 获取最后一个节点 const lastNode = items[items.length - 1];
3. 节点列表的长度
console.log(`列表中有 ${items.length} 个节点`);
节点列表操作演示
项目 1
项目 2
项目 3
项目 4
<!– 注释 –>