<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"是错误的表达,请问能不能得到指定的子节点呢
childList[i].getAttribute("id")=="lesson4"表达式正确,但是你需要先排除nodeType 类型是text的,才会执行你下面的代码,否则直接报错
这样写只获取到 <li id="lesson4">…</li> 这部分的子节点,分别是 HTML/CSS、<ul>…</ul> 与 空白符(非IE下),还需要一层循环来获取 <ul>…</ul> 子节点中的内容啊!
<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>