2011-07-15 71 views
1

不屬性節點在DOM中作爲子節點計數嗎?不屬性節點算作DOM2中的子節點嗎?

我的頁面在這裏是這樣的在身體中的5個孩子:text> h1> text> div> text> // 5個孩子的結尾 但是attributnodes不算?不應該childNodes屬性返回所有類型的節點數組?隨着文本>屬性>文本> H1> attribut>正文> DIV> attribut>正文>點//等等......

我有這個頁面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>DOM testing</title> 
     <script src="scripts/domTesting3.js" type="text/javascript" charset="utf-8"></script> 
    </head> 
    <body bgcolor="#cccccc"> 
     <h1 id="test">Test</h1> 
     <div id="content"> 
      <p>Examining the DOM2 Core and DOM2 HTML Recommendations</p> 
      <h2>Browsers</h2> 
      <ul id="browserList"> 
       <li id="chromeListItem"> 
        <a href="http://www.google.com/chrome/ "title="Get Chrome" id="chrome">Chrome</a> 
       </li> 
       <li id="firefoxListItem"> 
        <a href="http://www.getfirefox.com/"title="Get Firefox" id="firefox">Firefox 5.0</a> 
       </li> 
       <li> 
        <a href="http://www.microsoft.com/windows/ie/downloads/" title="Get Microsoft Internet Explorer" id="msie">Microsoft Internet Explorer 9</a> 
       </li> 
       <li> 
        <a href="http://www.apple.com/macosx/features/safari/" title="Check out Safari" id="safari">Safari</a> 
       </li> 
       <li> 
        <a href="http://www.opera.com/download/" title="Get Opera" id="opera">Opera 9</a> 
       </li> 
      </ul> 
     </div> 
    </body> 
</html> 

這個腳本:

function domTest() { 
    var le = document.body.childNodes.length; 
    alert(le);//alerts 5 children where are attribut nodes? 
    for(i = 0; i < le; i++) { 
     alert(document.body.childNodes[i].nodeType); 
     alert(document.body.childNodes[i].nodeName); 
     alert(document.body.childNodes[i].nodeValue); 
    } 
} 

window.onload = domTest; 

回答

0

Attr對象繼承了Node接口,但由於它們實際上並不是它們描述的元素的子節點,所以DOM不會將它們視爲文檔樹的一部分。因此,節點屬性parentNode,previousSibling和nextSibling對於Attr對象具有空值。

來自Attr interface description of DOM Level 2 Core