每个节点都包含关于节点某些信息的属性
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 |