獲取節(jié)點信息:
.nodeName//只讀,返回節(jié)點名稱,相當于tagName. .nodeValue//可讀可寫,但對元素節(jié)點不能寫。返回一個字符串,指示這個節(jié)點的值。元素節(jié)點返回null,屬性節(jié)點返回屬性值,文本節(jié)點返回文本。一般只用于設置文本節(jié)點的值。 .nodeType//只讀,返回節(jié)點類型:1,元素節(jié)點;2,屬性節(jié)點;3,文本節(jié)點。
node.contains() //是否包含某節(jié)點,返回boolean值,IE支持,F(xiàn)F不支持contains(),但支持W3C標準compareDocumentPosition() . node.hasChildNodes()//是否有子節(jié)點,返回boolean值
屬性節(jié)點:
setAttribute(key,value)//element.setAttribute(attributeName,attributeValue),setAttribute()方法只能用在屬性節(jié)點上。 getAttribute(key)//返回一個給定元素的一個給定屬性節(jié)點的值
備注:
[1]childNodes兼容性問題說明:
用IE的調試工具會發(fā)現(xiàn)IE中把空格解析成“#text”,即IE會把2個標簽之間只要有回車或空格的地方解析成空白文本節(jié)點,就多了個節(jié)點nodeName="#text"。而FF中卻不會。
測試代碼:
//節(jié)點之間留有空格和回車 <div id="test1"> <div>first</div> <div>second</div> <div>third</div> </div>
//除注釋外,節(jié)點間無空格回車 <div id="test2"><div>first</div><div>second</div><div>third</div></div>
var val1=document.getElementById("test1").childNodes.length; var val2=document.getElementById("test2").childNodes.length; alert("val1="+val1+":"+"val2="+val2)
測試結果:
IE中是val1=7:val2=3 FF中是val1=3:val2=3
兼容性解決辦法:
在for循環(huán)里不妨加上: if(childNode.nodeName=="#text") continue; 或者nodeType == 1。
出處:阿里媽媽UED
責任編輯:bluehearts
上一頁 小結下dom節(jié)點操作 [2] 下一頁 小結下dom節(jié)點操作 [4]
◎進入論壇網頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|