什么是“最快”(最有效)的方法,让身体的所有元素都在一个数组中,然后循环遍历每个元素?
答案 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
})