节点对象和元素对象的区别


在看《 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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM