JavaScript获取子元素

JavaScript042

JavaScript获取子元素,第1张

这是因为getElementById再结合children属性获取的是DOM元素,而querySelectorAll获取的则是NodeList对象元素。前者会随页面DOM结构的变化而变化,比如删除了box中的一个div,这个div就会从children中被“真实地”删掉,children.length的计数也会减1。而后者如果删除其中的某个子元素,被删的元素并不会消失,而是变成一个空对象,children1.length的计数也不会改变,这样的话 for(var i=0i<children1.length) 这个循环由于i的值不变(总是等于0),而children1.length也不会减少(总是4),这样就变成死循环了(同时也意味着把一个已删除的元素不断重复删除)。

改成这样就没问题了:

for(var i=0i<children1.lengthi++){

  box.removeChild(children1[i])

}

javascript中获得元素个数用的函数是length属性,也就是在获取的dom元素的时候返回dom的个数。比如document.getElementsByTagName('div').length这样就获得了div的个数,那么,要获得子元素的个数,同样的用哪个length就可以完成,只不过,需要指定父元素,比如:var father=document.getElementById('divid')从father中获得子元素个数:father.getElementsByTagName('a').length这样就能获取到father中a元素的个数了。

1、新建一个html文件,命名为test.html,用于讲解Jquery如何获得div下的元素。

2、在test.html文件内,使用div标签创建一个模块,在div内,使用p标签,span标签创建测试的内容。

3、在test.html文件内,设置div的id属性为divcon,主要用于下面通过该id获得div对象。

4、在test.html文件内,使用button标签创建一个按钮,按钮名称为“获得div下的元素”。

5、在test.html文件中,给button按钮绑定onclick点击事件,当按钮被点击时,执行divfun()函数。

6、在js标签中,创建divfun()函数,在函数内,通过id(divcon)获得div对象,使用html()方法便可以获得div对象下面的元素了。最后,使用alert()方法输出元素。

7、在浏览器打开test.html文件,点击按钮,查看结果。

总结

1、创建一个test.html文件。

2、在文件内,在div标签内,使用p标签创建一行文字,同时创建一个button按钮,用于触发执行js函数。

3、在js标签内,创建函数,在函数内,使用getElementById()方法通过id(mydiv)获是div对象,再使用getElementsByTagName()方法获得div下面的p元素对象,最后,使用alert()方法输出p元素的内容。