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

急!!!! 这里面子元素节点不应该有4个吗?两个li和两个文本节点,为什么用for遍历只显示2个li

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>无标题文档</title>

</head>

<body>


<ul id="test"><li>JavaScript</li><li>HTML</li></ul> 

 

<script type="text/javascript">


  /*var otest = document.getElementById("test");  

  var newnode=document.createElement("li");

  newnode.innerHTML="php";

  otest.insertBefore(newnode,otest.childNodes[1]);

*/

  var otest = document.getElementById("test");

  var a=otest.childNodes;

  document.write(a.length+"<br/>");

  for(i=0;i<a.length;i++){

  document.write(a[i].nodeName+"<br/>");

  

  }

</script> 


</body>

</html>


正在回答

5 回答

  var otest = document.getElementsByTagName("li")[0];

  var a=otest.childNodes;

  document.write(a.length+"<br/>");

  for(i=0;i<a.length;i++){

  document.write(a[i].nodeName+"<br/>");

  

  }

 最后显示:1

#text

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

otest 是<ul> ,它的子节点 为2个<li>,而<li>的子节点才是文本节点

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

再一次测试, a的length为5..循环里也输出了5个 两个li  三个 #text 文本节点

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

<ul id="test">

<li>JavaScript</li>

<li>HTML</li>

</ul> 

改成这样你再试试看 因为在同一行的话由于紧凑的排列并不会产生文本节点哦 酱紫

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

var otest = document.getElementById("test");

var a=otest.childNodes;   

otest 是 ul   a是ul中的节点,不包括文本节点。所以长度为li的长度

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

举报

0/150
提交
取消

急!!!! 这里面子元素节点不应该有4个吗?两个li和两个文本节点,为什么用for遍历只显示2个li

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