将主体的所有元素放在一个数组中然后循环遍历每个元素的“最快”(最有效)方法是什么?
问问题
8406 次
4 回答
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 循环遍历所有元素。
于 2013-10-19T17:12:02.593 回答
3
我建议这样做:
var items = document.body.getElementsByTagName("*");
for (var i = 0, len = items.length; i < len; i++) {
// do something with items[i] here
}
于 2013-10-19T17:18:59.373 回答
2
您可以使用:
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,与getElementsByTagName
返回实时 NodeLists 不同。
于 2013-10-19T17:23:30.757 回答
-2
It would be something like this:
var allElements = $(body).find('*');
allElements.each(function(){
//do something
})
于 2013-10-19T17:35:41.937 回答