15

我有很多 div 类publish_0,我想publish_1通过单击按钮更改为。

现在我使用它,但它只改变一个项目。

如何将 setattribute 应用于所有具有publish_0.

document.querySelector('.publish_0').setAttribute("class", "publish_1");
4

3 回答 3

44

您需要使用循环遍历所有元素并单独设置它们的类属性值:

var els = document.querySelectorAll('.publish_0');
for (var i=0; i < els.length; i++) {
    els[i].setAttribute("class", "publish_1");
}
于 2013-08-27T01:07:02.593 回答
12

当您不能使用 jQuery 但想要类似的便利时,您可以执行以下操作。将以下代码添加到文件顶部或其他容易看到的位置。

NodeList.prototype.forEach = NodeList.prototype.forEach || Array.prototype.forEach;

现在在您的代码中,您可以这样做:

document.querySelectorAll('body,main,article,[class*=content],[class*=center]')
        .forEach((function(x){ x.setAttribute("style","width:1920px");}))

或者更好的是,如果浏览器支持 ECMAScript2015,您可以使用箭头语法:

document.querySelectorAll('[class*=content]')
        .forEach( x=> x.setAttribute("style","width:1200px"))

如果您愿意,可以将声明全部放在一行上。

于 2016-02-05T20:29:12.847 回答
-3

您可以将其与 jquery 一起使用:

$(".publish_0").attr("class", "publish_1")

或者,使用 getElementsByClassName 并遍历返回的 DOM 元素。

于 2013-08-27T01:09:34.380 回答