使用javascript和循环获取所有body元素

时间:2013-10-19 17:05:05

标签: javascript html dom web

什么是“最快”(最有效)的方法,让身体的所有元素都在一个数组中,然后循环遍历每个元素?

4 个答案:

答案 0 :(得分:3)

您可以在jquery中使用星号选择器。

var allElems=$('body').find('*');

allElems将是类似于对象的数组,因此您可以在其上创建for循环,或者您可以使用jquery每个方法来遍历所有。像

allElems.each(function(){
     var elm=this, //javascript DOM object
         $elm=$(this) //jquery object for element.

});

如果您只想使用javascript,可以使用querySelectorAll dom方法。

var allElems=document.body.querySelectorAll('*'); // new browser support

var allElems=document.body.getElementsByTagName('*'); //all browser support

你可以使用for循环遍历所有元素。

答案 1 :(得分:3)

我建议:

var items = document.body.getElementsByTagName("*");
for (var i = 0, len = items.length; i < len; i++) {
    // do something with items[i] here
}

答案 2 :(得分:1)

您可以使用:

var els = document.body.querySelectorAll( '*' ),
    len = els.length, i = 0;

for ( ; i < len; i++ )
    console.log( els[i] );

querySelectorAll的浏览器支持:http://caniuse.com/#feat=queryselector

值得注意的是,querySelectorAll返回静态NodeLists,与返回实时NodeLists的getElementsByTagName不同。

答案 3 :(得分:-2)

这将是这样的:

var allElements = $(body).find('*');

allElements.each(function(){
   //do something
})