<!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 my=mylist.parentNode.parentNode.parentNode.lastChild.firstChild.lastChild;
document.write(my.innerHTML);
</script>
</body>
</html>
var my=mylist.parentNode.parentNode.parentNode.lastChild.firstChild.lastChild;
document.write(my.innerHTML);这句错误.
var my=mylist.parentNode.parentNode.parentNode.lastChild 这一步指的是lesson4,
后面应该用 childNodes[1].childNodes; 其中childNode[0]值得是HTML/CSS这段文本.
你错就错在.firstChild直到文本节点去了.
正确应该是:var me=mylist.parentNode.parentNode.parentNode.lastChild.childNodes[1].childNodes;
然后循环打印出来:
for(var i=0;i<me.length;i++){
if(me[i].firstChild!=null){
document.write(me[i].firstChild.nodeValue+"<br />")
}
}
var my=mylist.parentNode.parentNode.parentNode.lastChild //这里你得到的是“lesson4”元素节点 .firstChild//这里你访问的是“HTML/CSS”这个文本节点 .lastChild;//这里就无效了,没有子节点了
var my=mylist.parentNode.parentNode.parentNode.lastChild.childNodes[1]
//不是IE浏览器数字要换成2才能访问到ul节点,空格和回车符也算成是文本节点