为了账号安全,请及时绑定邮箱和手机立即绑定

为何会有undefine

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<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>    

   var mylist = document.getElementById("tcon"); 

 document.write(mylist.parentNode.parentNode.parentNode.lastChild.innerHTML);

</script> 


</body>

</html>

</body>

</html>


正在回答

6 回答

是因为浏览器兼容性问题,IE可以正常输出。非IE会识别空白文本节点

0 回复 有任何疑惑可以回复我~

 var mylist = document.getElementById("tcon"); 

    var p = mylist.parentNode.parentNode.parentNode.lastChild.firstChild;

    document.write(p.nodeValue);

这些代码你试试理解。

0 回复 有任何疑惑可以回复我~
#1

qq_杀意隆_0

那么答案好像是错的吧,innerHTML无法输出,nodeValue就可以输出
2017-06-02 回复 有任何疑惑可以回复我~

题目原来的代码是连载一起的,你可能调整格式把</ul>重新换行了。

0 回复 有任何疑惑可以回复我~

我调试了一下,是因为浏览器的原因,在无序列表的最后,就是

</li>

</ul>  

<script>  

这个地方,把</li></ul>直接空白去掉 ,就好了。

否则他认为这个之前有个文本节点。

你可以试一下,在最后的</li>和</ul>之间加入文本,再用  document.write(mylist.parentNode.parentNode.parentNode.lastChild.nodeValue);看是否一致就明白了。




1 回复 有任何疑惑可以回复我~

document.write(mylist.parentNode.parentNode.parentNode.lastChild.innerHTML);

这句话我运行是没问题的

0 回复 有任何疑惑可以回复我~

.lastchild

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468201    人
  • 解答问题       21891    个

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

进入课程

为何会有undefine

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信