<!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 x=mylist.parentNode.parentNode.parentNode.lastChild;
document.write(x.innerHTML);
var y=mylist.parentNode.parentNode.parentNode.childNodes;
document.write(y.length);
for(var i=0;i<y.length;i++){
document.write("第"+(i+1)+"个节点的节点名称:"+y[i].nodeName+"</br>");
}
</script>
</body>
</html>以下是运行结果

看你代码27行</li></ul> 两个标签是连起来的,没有空白符,所以没有空白标签
2,4,6,8这四个节点分别对应id为lesson1,lesson2,lesson3,lesson4四个li标签
lesson4结束部分</li>与</ul>之间没有空白节点,因此最后一个节点不是空白标签