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

假如我现在希望与任务一样,想通过获取的mylist节点,使用访问父节点parentNode,将<li id="lesson3">dadf</li>中的dadf输出,请问应该怎么写呢?为什么像下面这样写输出的是undefined,而不是dadf呢?

<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 con=mylist.parentNode.parentNode.parentNode.childNodes;
document.write(con[2].innerHTML); 
</script>

正在回答

4 回答

childNodes 获取作为指定对象直接后代的 HTML 元素和 TextNode 对象的集合。  
children 获取作为对象直接后代的DHTML 对象的集合。

你这里应该用children,而不是childNodes

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

空白2016 提问者

原来如此,谢谢您^_^
2015-12-14 回复 有任何疑惑可以回复我~

parentNode.parentNode.childNodes  的理解更深入了,谢谢大家

0 回复 有任何疑惑可以回复我~
document.write(con[2].innerHTML);

你这个输出的是第三个子节点的属性,而<ul id="con">中第三个子节点是空白节点,所以会输出undefined.

所以算上空白节点的话,你要输出的dadf应该是

document.write(con[5].innerHTML);

或者直接把每个节点之间的空白节点去掉

<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(con[2].innerHTML);

就能输出dadf了

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

空白2016 提问者

恩,这也是种不错的解决方法,赞一个^_^
2015-12-17 回复 有任何疑惑可以回复我~
document.write(document.getElementById("lesson3").innerHTML);

直接这么写就好了

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

空白2016 提问者

不好意思,提问时忘记注明了,我希望与任务一样,通过获取的mylist节点,使用访问父节点parentNode,将dadf输出,请问应该怎么写呢?
2015-12-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

假如我现在希望与任务一样,想通过获取的mylist节点,使用访问父节点parentNode,将<li id="lesson3">dadf</li>中的dadf输出,请问应该怎么写呢?为什么像下面这样写输出的是undefined,而不是dadf呢?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号