nodeType、nodeName和nodeValue


首先了解一下DOM中有三大節點,分別是 元素節點,文本節點,屬性節點

元素節點:構成了DOM的基礎。文檔結構中,<html>是根元素,代表整個文檔,其他的還有<head>,<body>,<p>,<span>等等。元素節點之間可以相互包含(當然遵循一定的規則)

文本節點:包含在元素節點中。

屬性節點:元素都可以包含一些屬性,屬性的作用是對元素做出更具體的描述,比如id,name之類的。

以下面的demo為例:

<script>
window.onload = function(){
    var element = document.getElementById("span");
    var text = element.firstChild;
    var property=document.getElementById("span").getAttributeNode("id");
}
</script>

<body>
  <div>
     <span id="span">文本節點</span>
  </div>
</body> 

 

(一)nodeName 屬性含有某個節點的名稱。

元素節點的 nodeName 是標簽名稱(返回的名稱是大寫的)

屬性節點的 nodeName 是屬性名稱(返回的名稱是大寫的)

文本節點的 nodeName 永遠是 #text

文檔節點的 nodeName 永遠是 #document

注釋:nodeName 所包含的 XML 元素的標簽名稱永遠是大寫的

alert("這是元素節點的返回值:"+ element.nodeName);//返回的標簽名SPAN,注意是大寫的
alert("這是文本節點的返回值:"+ text.nodeName);//返回的#text
alert("這是屬性節點的返回值:"+ property.nodeName);//返回的是屬性名,這里是id

 

(二)nodeValue

對於文本節點,nodeValue 屬性包含文本。

對於屬性節點,nodeValue 屬性包含屬性值。

nodeValue 屬性對於文檔節點和元素節點是不可用的。

alert("這是元素節點的返回值:"+ element.nodeValue);//本身就沒有意義,這里是試驗下的,返回的是null
alert("這是文本節點的返回值:"+ text.nodeValue);//返回的是文本值  文本節點
alert("這是屬性節點的返回值:"+ property.nodeValue);//返回的是屬性值,這里是id的屬性值span

 

(三)nodeType

nodeType 屬性可返回節點的類型。

我們常用的3中類型:
nodeType == 1  : 元素節點
nodeType == 2  : 屬性節點
nodeType == 3  : 文本節點

注釋 comments   8

文檔 document   9

  alert("這是元素節點的返回值:"+ element.nodeType);//元素節點返回1
  alert("這是文本節點的返回值:"+ text.nodeType);//文本節點返回3
  alert("這是屬性節點的返回值:"+ property.nodeType);//屬性節點返回2

 

 

 

 

___________________________

原文:http://www.tuicool.com/articles/zANnye

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM