Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript和循环获取所有主体元素_Javascript_Html_Dom_Web - Fatal编程技术网

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

使用javascript和循环获取所有主体元素,javascript,html,dom,web,Javascript,Html,Dom,Web,让主体的所有元素都在一个数组中,然后在每个元素之间循环的“最快”(最有效)的方法是什么?您可以在jquery中使用星型选择器 var allElems=$('body').find('*'); 等位基因将是类似于数组的对象,所以您可以在其上创建for循环,或者您可以使用jquery的每个方法遍历所有对象。像 allElems.each(function(){ var elm=this, //javascript DOM object $elm=$(this) //j

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

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

var allElems=$('body').find('*');
等位基因将是类似于数组的对象,所以您可以在其上创建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

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

我建议:

var items = document.body.getElementsByTagName("*");
for (var i = 0, len = items.length; i < len; i++) {
    // do something with items[i] here
}
var items=document.body.getElementsByTagName(“*”);
对于(变量i=0,len=items.length;i
您可以使用:

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

for ( ; i < len; i++ )
    console.log( els[i] );
var els=document.body.querySelectorAll('*'),
len=els.length,i=0;
对于(;i
对querySelectorAll的浏览器支持:


值得注意的是,
querySelectorAll
返回静态节点列表,这与返回活动节点列表的
getElementsByTagName
不同

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

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

您想要完整的DOM树还是只想要它的第一级?之后需要数组还是只想迭代所有节点?OP的问题中根本没有jQuery的迹象。@jfriend00也添加了js解决方案。您能解释一下静态节点和活动节点之间的区别吗?
var allElements = $(body).find('*');

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