zoukankan      html  css  js  c++  java
  • HTML DOM firstChild lastChild nextSibling previousSibling 属性_获取属性值的undefined问题

     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>
  • 相关阅读:
    swoole 安装方法 使用即时聊天
    git的介绍以及简单应用
    curl的应用
    linux下监听和同步代码配置
    mac skim 修改背景色
    php 编译安装的一个 configure 配置
    mac mysql error You must reset your password using ALTER USER statement before executing this statement.
    yii2 控制器里 action 大小写组合造成的路由问题
    warning : json_decode(): option JSON_BIGINT_AS_STRING not implemented in xxx
    redis 自启动脚本
  • 原文地址:https://www.cnblogs.com/denggelin/p/9104549.html
Copyright © 2011-2022 走看看