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

这个函数为什么没有输出。。。检查了好久貌似没有问题

这个函数为什么没有输出。。。检查了好久貌似没有问题

<!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 b=mylist.parentNode.parentNode.parentNode;//ul   var c=b.lastChild;//li   var d=c.childNode[0];//ul   var e=d.childNode;//li[]   for(i=0;i<=d.length;i++){       if(e[i].nodeType==3){           continue;       }    else{        document.write(e[i].nodeValue);    }     }</script> </body></html>
查看完整描述

4 回答

?
_da

TA贡献22条经验 获得超29个赞

</ul></li></ul>

<script  type="text/javascript">    

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

  var b=mylist.parentNode.parentNode.parentNode;//ul

  var c=b.lastChild;//li

  var d=c.childNodes[0];//ul


查看完整回答
反对 回复 2016-02-14
?
_da

TA贡献22条经验 获得超29个赞

console.log(c)你就明白了。最后是文本节点 

查看完整回答
反对 回复 2016-02-14
?
逆光之羽

TA贡献55条经验 获得超13个赞

<!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 b=mylist.parentNode.parentNode.parentNode;//ul
  var c=b.lastChild.previousSibling;//li    
  var d=c.childNodes[1];//ul
  var e=d.childNodes;//li[]
  for(i=0;i<e.length;i++){
      if(e[i].nodeType==3){
          continue;
      }else{
       document.write(e[i].innerHTML);
   }  
  }

</script>
</body>
</html>

不知道是不是要的这个效果

js原生的子节点获取函数都有兼容性问题,不同浏览器下面子节点个数都不一样

如果是在IE下的话,你那程序之所以没输出是因为从var c开始取元素就取错了

再加上var d和var e取子元素的语法错误,应该是childNodes


查看完整回答
反对 回复 2016-02-06
?
Caballarii

TA贡献1123条经验 获得超629个赞

for循环里面不该用d.length

查看完整回答
反对 回复 2016-02-05
  • 4 回答
  • 0 关注
  • 2020 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信