<!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"); var b=mylist.parentNode.parentNode.parentNode;//ul var c=b.lastChild;//li var d=c.childNode[0];//ul var e=d.childNode;//li[] for(i=0;i<=d.length;i++){ if(e[i].nodeType==3){ continue; } else{ document.write(e[i].nodeValue); } }</script> </body></html>
4 回答
_da
TA贡献22条经验 获得超29个赞
</ul></li></ul>
<script type="text/javascript">
var mylist = document.getElementById("tcon");
var b=mylist.parentNode.parentNode.parentNode;//ul
var c=b.lastChild;//li
var d=c.childNodes[0];//ul
逆光之羽
TA贡献55条经验 获得超13个赞
<!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"); var b=mylist.parentNode.parentNode.parentNode;//ul var c=b.lastChild.previousSibling;//li var d=c.childNodes[1];//ul var e=d.childNodes;//li[] for(i=0;i<e.length;i++){ if(e[i].nodeType==3){ continue; }else{ document.write(e[i].innerHTML); } } </script> </body> </html>
不知道是不是要的这个效果
js原生的子节点获取函数都有兼容性问题,不同浏览器下面子节点个数都不一样
如果是在IE下的话,你那程序之所以没输出是因为从var c开始取元素就取错了
再加上var d和var e取子元素的语法错误,应该是childNodes
添加回答
举报
0/150
提交
取消