大年糕
2017-05-25 14:56
代码部分如下:
<body>
<div>
javascript
<p>javascript</p>
<div>jQuery</div>
<h5>PHP</h5>
</div>
<script type="text/javascript">
var x=document.getElementsByTagName("div")[0].childNodes;
for(var i=0;i<x.length;i++)
{
document.write("第"+(i+1)+"个节点的名称是:"+x[i].nodeName+"<br />");
document.write("第"+(i+1)+"个节点的值是:"+x[i].nodeValue+"<br />");
document.write("第"+(i+1)+"个节点的类型是:"+x[i].nodeType+"<br />");
}
</script>
</body>
本人是新手自学,请大神们给解释的详细一些:
我不明的地方:var x=document.getElementsByTagName("div")[0].childNodes;
这行代码的意思是 找到类标签“<div>”保存到数组x中,但是为什么要加[0],加[0]的意义是什么,难道是从x数组中第一个元素开始的意思吗?
麻烦大神了给详细讲解下 不胜感谢!
正如你所说,document.getElementsByTagName("div")是找到代码中所有的div元素节点,这段代码里面有两个div,下标分别是0和1。document.getElementsByTagName("div")[0].childNodes是下标为0的div元素里面所有的子节点,有一个文本节点,三个元素节点。若是你把那个0改为1的话那就只有一个文本节点了。
刚看到的:[0]表示数组的第一个元素,放在这段代码里就是获取第一个div元素,因为一段js代码中可能不止一个div元素。希望能帮到你!
我也是不懂为什么要加[0],刚发的问题,在线等!
var x=document.getElementsByTagName("div")返回的应该是这个页面上所有的<div>,是个集合或者数组吧,然后,var x=document.getElementsByTagName("div")[0].childNodes就是获取数组第一一个元素,也就是第一个<div>标签下的所有子节点。是这样理解吗
sorry啊,我明白了,var x=document.getElementsByTagName("div")[0].childNodes; 这个x数组中有两个元素,我们的目的是要第一个元素下的所有子节点! 额。。。自问自答了!
在线等~~~~!
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题