如何找到指定的子节点

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

HYDMonster

2018-11-20 15:35

<script  type="text/javascript">
    var mylist = document.getElementById("tcon"); 
    var parent=mylist.parentNode.parentNode.parentNode;
    var childList=parent.childNodes;
    for(var i=0;i<childList.length;i++){
        if(childList[i].getAttribute("id")=="lesson4"){
            var sunList=childList[i].childNodes;
            for(var j=0;j<sunList.length;j++){
                document.write(sunList[j].innerHTML+"  ");
            }
         }
       }

这里面那个childList[i].getAttribute("id")=="lesson4"是错误的表达,请问能不能得到指定的子节点呢

写回答 关注

3回答

  • 慕慕0508951
    2018-11-27 16:55:24
    已采纳

    childList[i].getAttribute("id")=="lesson4"表达式正确,但是你需要先排除nodeType 类型是text的,才会执行你下面的代码,否则直接报错

    思进行

    为什么把lastChild换成document.write(mylist.parentNode.parentNode.parentNode.firstChild.innerHTML);会输出undefined,不应该是lesson1的内容被输出出来的嘛

    2019-02-11 19:35:44

    共 1 条回复 >

  • 酷睿N核
    2019-02-28 12:11:03

    这样写只获取到 <li id="lesson4">…</li> 这部分的子节点,分别是 HTML/CSS、<ul>…</ul> 与 空白符(非IE下),还需要一层循环来获取 <ul>…</ul> 子节点中的内容啊!

  • 思进行
    2019-02-11 19:36:11

    <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> 


JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题