每個節點都包含關於節點某些信息的屬性
nodeName 節點的名稱
nodeValue 節點的值
nodeType 節點的類型
1、 nodeName
nodeName屬性含有節點的名稱。
元素節點的nodeName是標籤名稱
屬性節點的nodeName是屬性名稱
文本節點的nodeName是#text
文檔節點的nodeName永遠是#document
注意:IE中nodeName屬性只返回元素節點,fireFox中不僅返回元素節點,還會返回文本節點
如:
<html>
<head>
<title>HTML DOM</title>
</head>
<body>
<div>div1</div>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<script language="javascript">
var s="";
var x=document.getElementsByTagName("ul")[0]
for(var i=0;i<x.childNodes.length;i++){
if(x.childNodes[i].nodeType==1){
s+=x.childNodes[i].nodeName+"\n";
}
}
alert("UL有以下幾個子元素節點:\n"+s);
</script></body>
</html>
IE和FireFox運行結果相同,如下:
如果去掉if語句:if(x.childNodes[i].nodeType==1),那麼fireFox運行結果如下:
2、 nodeValue
對於文本節點,nodeValue屬性包含文本
對於屬性節點,nodeValue屬性包含屬性值
nodeValue屬性對於文檔節點和元素節點是不可用的。
所以,要返回上面的例子中,ul中子元素的內容,把s+=部分修改如下:
s+=x.childNodes[i].childNodes[0].nodeValue+"\n";
或用元素的innerHTML屬性,修改如下:
s+=x.childNodes[i].innerHTML+"\n";
3、 nodeType
nodeType屬性可返回節點的類型
最重要節點類型如下:
元素類型 |
節點類型 |
元素 |
1 |
屬性 |
2 |
文本 |
3 |
註釋 |
8 |
文檔 |
9 |