码迷,mamicode.com
首页 > Web开发 > 详细

HTML DOM firstChild lastChild nextSibling previousSibling 属性_获取属性值的undefined问题

时间:2018-05-29 14:00:42      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:一个   rev   previous   length   fir   api   节点   高级   div   

 

 1 <html>
 2  <head>
 3   <title>HTML示例</title>
 4   <style type="text/css">
 5 
 6   </style>
 7  </head>
 8  <body>
 9 
10     <ul id="ulid">
11         <li id="li1">qqqqq</li>
12         <li id="li2">wwww</li>
13         <li id="li3">yyyyyy</li>
14         <li id="li4">test1111</li>
15     </ul>
16 
17     <script type="text/javascript">
18         
19         //获取ul的第一个子节点 id=li1
20         //得到ul
21         var ul1 = document.getElementById("ulid");
22         //第一个子节点
23         var li1 = ul1.firstChild;
24         alert(li1.id);
25 
26         //得到最后一个子节点
27         var li4 = ul1.lastChild;
28         alert(li4.id);
29 
30         //获取li的id是li3的上一个和下一个兄弟节点
31         var li3 = document.getElementById("li3");
32         alert(li3.nextSibling.id);
33         alert(li3.previousSibling.id);
34         
35     </script>
36  </body>
37 </html>

 

以上案例在Google Chrome和IE是undefined,并且打印一下lastChildNode 显示是Object Text,是因为在高级浏览器里面,通过前述API拿到的第一和最后一个子标签是文本标签(文本节点),跟childNodes属性类似,因此,我们在碰到这些状况的时候,还是不建议使用,建议透过getElementsByTagName()的方法获取子元素.

 

解决办法:

不使用HTML DOM firstChild 属性、HTML DOM lastChild 属性、HTML DOM nextSibling 属性、HTML DOM previousSibling 属性

改为使用HTML DOM getElementsByTagName() 方法

 

 1 <html>
 2  <head>
 3   <title>HTML示例</title>
 4   <style type="text/css">
 5 
 6   </style>
 7  </head>
 8  <body>
 9 
10     <ul id="ulid">
11         <li id="li1">qqqqq</li>
12         <li id="li2">wwww</li>
13         <li id="li3">yyyyyy</li>
14         <li id="li4">test1111</li>
15     </ul>
16 
17     <script type="text/javascript">
18         
19         var li=document.getElementsByTagName("li");
20         
21         for (var i=0;i<li.length;i++) {
22             alert(li[i].id);
23         }
24         
25     </script>
26  </body>
27 </html>

 

HTML DOM firstChild lastChild nextSibling previousSibling 属性_获取属性值的undefined问题

标签:一个   rev   previous   length   fir   api   节点   高级   div   

原文地址:https://www.cnblogs.com/denggelin/p/9104549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!