首页 新闻 会员 周边 捐助

js测试属性节点,明明有,却弹出来一个0,,用的childNodes

0
悬赏园豆:10 [已解决问题] 解决于 2014-12-06 11:59
 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只包括文本和元素节点??求指导

js
wstpa的主页 wstpa | 初学一级 | 园豆:151
提问于:2014-11-21 00:05
< >
分享
最佳答案
0

真的是你理解错了。childNodes指的是下级元素节点+文本节点。

属性节点需要通过:element.attributes来获取。

收获园豆:10
幻天芒 | 高人七级 |园豆:37205 | 2014-11-21 08:47
其他回答(1)
0

这种问题靠别人说,不容易记住,最好自己打个断点仔细看看,你就明白了

隔壁老王来了 | 园豆:99 (初学一级) | 2014-11-21 08:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册