節點對象和元素對象的區別


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