javascript setattribute到多个元素

时间:2013-08-27 01:04:11

标签: javascript setattribute

我在课程publish_0上有很多div,我想在点击按钮时将其更改为publish_1

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

如何将setattribute应用于具有publish_0

的所有项目
document.querySelector('.publish_0').setAttribute("class", "publish_1");

3 个答案:

答案 0 :(得分:29)

您需要使用循环迭代所有元素并单独设置其类属性值:

var els = document.querySelectorAll('.publish_0');
for (var i=0; i < els.length; i++) {
    els[i].setAttribute("class", "publish_1");
}

答案 1 :(得分:4)

当你不能使用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"))

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

答案 2 :(得分:2)

你可以在jquery中使用它:

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

或者,使用getElementsByClassName并循环返回返回的DOM元素。