1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 5 <title>无标题文档</title> 6 <script> 7 window.onload=function (){ 8 var wrap=document.getElementsByTagName('body')[0]; 9 var str=wrap.childNodes; 10 var oEle=[]; 11 var oTxt=[]; 12 var oAtt=[]; 13 function get(){ 14 for(var i=0;i<str.length;i++){ 15 if(str[i].nodeType==1){ 16 oEle.push(str[i]); 17 }else if(str[i].nodeType==3){ 18 oTxt.push(str[i]); 19 }else if(str[i].nodeType==2){ 20 oAtt.push(str[i]); 21 } 22 } 23 return oEle; 24 } 25 get(); 26 alert('我是元素节点'+oEle+'我的长度是'+oEle.length); 27 alert('我是文本节点'+oTxt+'我的长度是'+oTxt.length); 28 alert('我是属性节点'+oAtt+'我的长度是'+oAtt.length); 29 30 } 31 </script> 32 </head> 33 34 <body> 35 <h1>太小瞧我哪里</h1> 36 <p id="red" title="我是">我是红色</p> 37 38 <ul> 39 <li>嘻嘻</li> 40 <li>哈哈</li> 41 <li>呵呵</li> 42 </ul> 43 44 45 </body> 46 </html>
<p>里面的title和id不是属性节点吗?还是我理解错了,或者是他们说的childNodes只包括文本和元素节点??求指导
真的是你理解错了。childNodes指的是下级元素节点+文本节点。
属性节点需要通过:element.attributes来获取。
这种问题靠别人说,不容易记住,最好自己打个断点仔细看看,你就明白了