Andis
2015-12-05 13:32
<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>
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
otest 是<ul> ,它的子节点 为2个<li>,而<li>的子节点才是文本节点
再一次测试, a的length为5..循环里也输出了5个 两个li 三个 #text 文本节点
<ul id="test">
<li>JavaScript</li>
<li>HTML</li>
</ul>
改成这样你再试试看 因为在同一行的话由于紧凑的排列并不会产生文本节点哦 酱紫
var otest = document.getElementById("test");
var a=otest.childNodes;
otest 是 ul a是ul中的节点,不包括文本节点。所以长度为li的长度
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题