D冷风
2017-07-03 10:53
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<ul><li>javascript</li><li>jQuery</li><li>PHP</li></ul>
<script type="text/javascript">
var x=document.getElementsByTagName("ul")[0].childNodes;
document.write(x.length+" ");
</script>
</body>
</html>
如果没有[0],var x=document.getElementsByTagName("ul").childNodes;则无结果,必须要 var x=document.getElementsByTagName("ul")[0].childNodes;才有结果,为什么?不写[0]不就代表获取所有节点吗?
getElementsByTagName(),返回的诗歌数组,所以即使只有一个也要加【0】,你可以看一下数组的定义,http://www.w3school.com.cn/js/js_obj_array.asp
document.getElementsByTagName("ul"),这个获取的是个数组,要加个【0】,才能定位到第一个ul标签。你的x是代表第一个ul下的li的所有集合。
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题