Html Dom 的nodetype解析
将HTML DOM中几个容易常用的属性做下记录:
HTML文件:
nodeName、nodeValue 以及 nodeType 包含有关于节点的信息。
nodeName 属性含有某个节点的名称。
- 元素节点的 nodeName 是标签名称
- 属性节点的 nodeName 是属性名称
- 文本节点的 nodeName 永远是 #text
- 文档节点的 nodeName 永远是 #document
注释:nodeName 所包含的 XML 元素的标签名称永远是大写的
nodeValue
对于文本节点,nodeValue 属性包含文本。
对于属性节点,nodeValue 属性包含属性值。
nodeValue 属性对于文档节点和元素节点是不可用的。
nodeType
nodeType 属性可返回节点的类型。
最重要的节点类型是:
元素类型 | 节点类型 |
---|---|
元素element | 1 |
属性attr | 2 |
文本text | 3 |
注释comments | 8 |
文档document | 9 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>DOM标准</title> <script type="text/javascript" src="test.js"></js> </head> <body> <h1 id="h1">An HTML Document</h1> <p id="p1">This is a <i>W3C HTML DOM</i> document.</p> <p><input id="btnDemo1" type="button" value="取H1 Element节点值"></p> <p><input id="btnDemo2" type="button" value="取H1 Element节点文本"></p> <p><input id="btnDemo3" type="button" value="取Document Element节点文本"></p> <p><input type="button" alt="这是个演示按钮" title="演示按钮提示标题" name="btnShowAttr" id="btnShowAttr" value="按钮节点演示" /></p> </body> </html>
JS:
function showElement(){ var element=document.getElementById("h1");//h1是一个<h1>标签 alert('nodetype:'+element.nodeType);//nodeType=1 alert('nodeName:'+element.nodeName); alert('nodeValue:'+element.nodeValue); //null alert('element:'+element); }
function showText(){ var element=document.getElementById("h1"); var text=element.childNodes[0]; alert('nodeType:'+text.nodeType); //nodeType=3 alert('nodeValue:'+text.nodeValue); //文本节点的nodeValue是其文本内容 text.nodeValue=text.nodeValue+"abc"; //文本内容添加修改删除等等。 alert('nodeName:'+text.nodeName); alert(text.data); //data同样是其内容,这个属性下同样可以增删改。 }
function showDocument(){ alert('nodeType:'+document.nodeType); //9 alert('nodeName:'+document.nodeName); alert(document); }
function showAttr(){ var btnShowAttr=document.getElementById("btnShowAttr"); //演示按钮,有很多属性 var attrs=btnShowAttr.attributes; for(var i=0;i<attrs.length ;i++){ var attr=attrs[i]; alert('nodeType:'+attr.nodeType); //attribute 的nodeType=2 alert('attr:'+attr); alert('attr.name:'+attr.name+'='+attr.value); }
}
function demo(){ var btnDemo1=document.getElementById("btnDemo1"); btnDemo1.onclick=showElement; //按钮1取节点nodetype值 var btnDemo2=document.getElementById("btnDemo2"); btnDemo2.onclick=showText; var btnDemo3=document.getElementById("btnDemo3"); btnDemo3.onclick=showDocument; var btnShowAttr=document.getElementById("btnShowAttr"); btnShowAttr.onclick=showAttr;
} window.onload=demo;
function showText(){ var element=document.getElementById("h1"); var text=element.childNodes[0]; alert('nodeType:'+text.nodeType); //nodeType=3 alert('nodeValue:'+text.nodeValue); //文本节点的nodeValue是其文本内容 text.nodeValue=text.nodeValue+"abc"; //文本内容添加修改删除等等。 alert('nodeName:'+text.nodeName); alert(text.data); //data同样是其内容,这个属性下同样可以增删改。 }
function showDocument(){ alert('nodeType:'+document.nodeType); //9 alert('nodeName:'+document.nodeName); alert(document); }
function showAttr(){ var btnShowAttr=document.getElementById("btnShowAttr"); //演示按钮,有很多属性 var attrs=btnShowAttr.attributes; for(var i=0;i<attrs.length ;i++){ var attr=attrs[i]; alert('nodeType:'+attr.nodeType); //attribute 的nodeType=2 alert('attr:'+attr); alert('attr.name:'+attr.name+'='+attr.value); }
}
function demo(){ var btnDemo1=document.getElementById("btnDemo1"); btnDemo1.onclick=showElement; //按钮1取节点nodetype值 var btnDemo2=document.getElementById("btnDemo2"); btnDemo2.onclick=showText; var btnDemo3=document.getElementById("btnDemo3"); btnDemo3.onclick=showDocument; var btnShowAttr=document.getElementById("btnShowAttr"); btnShowAttr.onclick=showAttr;
} window.onload=demo;