这段代码为什么firstChild就输出underfined呢?而lastChild就可以输出

来源:9-10 访问父节点parentNode

qq_慕沐7463022

2016-04-01 17:58

<!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");
document.write(mylist.parentNode.parentNode.parentNode.firstChild.innerHTML);
</script>

</body>
</html>

写回答 关注

1回答

  • 人生还有多少个二十年
    2016-04-01 20:58:34
    已采纳

    mylist.parentNode.parentNode.parentNode获得的是id为con的ul,它的第一个子节点为空,这是正常的。原因是它跟“<li id="tcon"> 基础语法</li>”之间还有若干个空格,这若干个空格可以看做是一个未定义的文本节点,所以“<li id="tcon"> 基础语法</li>”就成了第二个节点。


    qq_慕沐7...

    非常感谢!

    2016-04-05 20:49:36

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

467403 学习 · 21877 问题

查看课程

相似问题