遍历页面上的所有 <div> 标签

Posted

技术标签:

【中文标题】遍历页面上的所有 <div> 标签【英文标题】:Iterating through all the <div> tags on a page 【发布时间】:2010-10-25 02:20:40 【问题描述】:

我想使用 javascript 浏览页面上的所有元素并查看它们是否具有属性集。有没有简单的方法可以做到这一点,还是我必须使用递归解决方案?

【问题讨论】:

【参考方案1】:

你可以使用:

var divs = document.getElementsByTagName("div");
for(var i = 0; i < divs.length; i++)
   //do something to each div like
   divs[i].innerhtml = "something new...";

【讨论】:

最好使用标准的“for”循环——“for in”循环用于遍历对象。 另外,缓存数组的长度可以提高性能。例如:“for (var i = 0, l = divs.length; i 我可以补充一点,从 divs.length-1 倒数到 0,而不是向上倒数,会稍微快一点,在大多数情况下并不明显,但它可能会派上用场,记住某个点。 Sam Lee 在这个答案中在哪里找到他想要的属性?【参考方案2】:

在页面上的一个或多个 div 中查找属性:

var divs = document.getElementsByTagName("div"), i=divs.length;
while (i--) 
   if (divs[i].getAttribute([yourProperty]) === 'yourValue')
      //do something
    

【讨论】:

【参考方案3】:

您还可以使用选择器引擎,例如 Sizzle。

史蒂夫

【讨论】:

或 jQuery $("div").each(function (i) if (this.style.color != "blue") this.style.color = "blue"; else this.style.color = ""; ); 我认为您的评论与我的回答无关——它没有使用任何选择器。您为什么不发布您的 jQuery 代码作为另一个答案?【参考方案4】:

使用JS ES6 For ... of

for (elem of document.getElementsByTagName('div'))
  elem.style.marginTop='20px'

【讨论】:

以上是关于遍历页面上的所有 <div> 标签的主要内容,如果未能解决你的问题,请参考以下文章

怎么让一个DIV绝对定位到页面的正中间

怎么让一个DIV绝对定位到页面的正中间

JS如何获取页面内所有的<img>标签元素?

div页面布局

JQuery模拟点击页面上的所有a标签,触发onclick事件

如何将相同的 <div> (包含我的菜单)插入所有其他 html 页面?