<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>
document.write(mylist.parentNode.parentNode.parentNode.nodeName);
这个li指的那个地方的li
建议你在写代码的时候自己进行缩进,类似下面这样:
<!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; document.write(x.childNodes[x.childNodes.length-2].innerHTML); </script> </body> </html>
这样之后,先明确你的mylist指的是哪个东西,然后每个parentNode你就往上找一层,
mylist=????? var mylist = document.getElementById("tcon");(实例)
document.write(mylist.parentNode.parentNode.parentNode.nodeName);
如果是按照实例里的,mylist指的是:
<li id="tcon"> 基础语法</li>
就是找出来输出过程就应该是:li→ul→li→ul,最后的这个ul指的是:
<ul id="con">
var mylist = document.getElementById("tcon");
var list = mylist.parentNode.parentNode.parentNode.lastChild;
document.write(list.innerHTML);
你这个最后输出的不是 li 的文本,你这输出的是祖元素 ul 的节点名,你提交了输出的是ul
不知道你说的是哪个