ボタンをクリックするとpublish_0
に変更したいクラスpublish_1
のdivがたくさんあります。
今はこれを使っていますが、1つしか変更していません。
publish_0
を持つすべてのアイテムにsetattributeを適用する方法。
document.querySelector('.publish_0').setAttribute("class", "publish_1");
これはjqueryで使用できます。
$(".publish_0").attr("class", "publish_1")
または、getElementsByClassNameを使用して、返されたDOM要素をループします。
ループを使用してすべての要素を反復処理し、それらのクラス属性値を個別に設定する必要があります。
var els = document.querySelectorAll('.publish_0');
for (var i=0; i < els.length; i++) {
els[i].setAttribute("class", "publish_1");
}
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"))
必要に応じて、ステートメントをすべて1行にまとめることができます。