获取属性节点问题

来源:9-10 访问父节点parentNode

qq_丨银丨_0

2016-08-25 15:37

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<ul id="con">
<li id="lesson1">javascript
  <ul>
      <li id="tcon"> 基础语法</li>
      <li>流程控制语句</li>
      <li>函数</li>
      <li>事件</li>
      <li>DOM</li>
  </ul>
</li>
<li id="lesson2">das</li>
<li id="lesson3">dadf</li>
<li id="lesson4">HTML/CSS
  <ul>
    <li>文字</li>
    <li>段落</li>
    <li>表单</li>
    <li>表格</li>  
  </ul>
</li></ul>  
<script  type="text/javascript">    
   var mylist = document.getElementById("tcon");
   document.write(mylist.parentNode.parentNode.parentNode.lastChild.innerHTML);
   var childs = mylist.parentNode.parentNode.parentNode.childNodes;
   document.write(childs[childs.length-7].innerHTML);
   for(var i=0;i<childs.length;i++){

       document.write(childs[1].getAttribute("id"));//为啥这样就有输出

       if(childs[i].getAttribute("id")=="lesson4"){//这样程序就不走了
           document.write(childs[i].innerHTML);
       }

   }

</script>

</body>
</html>

写回答 关注

2回答

  • 子夜o阳光
    2016-08-25 15:49:08
    已采纳

    因为childs[i].getAttribute("id")当i=0时,childs[0]是#text没有id这个属性,所有就不继续运行了

    qq_丨银丨...

    那如果我想做一个类似的功能,if里面应该怎么写

    2016-08-25 15:51:47

    共 1 条回复 >

  • 子夜o阳光
    2016-08-25 15:59:46
    for(var i=0;i<childs.length;i++){
           if (childs[i].nodeType == 1) {//过滤掉#text
               if (childs[i].getAttribute("id") == "lesson4") {//这样程序就不走了
                   document.write(childs[i].innerHTML);
               }
           }
       }


    qq_丨银丨...

    谢谢,解决了我的疑惑

    2016-08-25 16:01:32

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题