节点对象和元素对象的区别
在看《 JavaScript 高级程序第3版》DOM 一章的时候,对于节点一词很疑惑,在里面判断节点类型的例子中:
if (someNode.nodeType == Node.ELEMENT_NODE) {
alert("Node is an element.")
}
也就是说,如果两者相等,则意味着 someNode 这个节点是一个元素,那元素节点和元素是相同的概念吗?如果是的话,节点与元素的区别在哪?
简单来说,节点是 DOM 层次结构中任何类型对象的通用名称,有各种类型的节点比如元素节点,文本节点,注释节点等等(如图所示,来自MDN)。

元素节点是一种特定类型的节点,可以当作 HTML 中的元素,通过 nodeType 属性可以查明节点的类型,通过 childNodes,firstChild 或 lastChild 属性来访问子节点。
<p id="para">Hello World!</p>
<script>
var p = document.getElementById("para"); // 取得<p>元素的引用,可看成元素节点
var text = p.firstChild.nodeValue; // 访问元素节点的子节点文本节点,取得包含的文本
console.log(p); // <p id="para">Hello World!</p>
console.log(text); // "Hello world!"
</script>
参考
https://stackoverflow.com/questions/9979172/difference-between-node-object-and-element-object

浙公网安备 33010602011771号