2013-08-27 13 views
8

ボタンをクリックすると、publish_0というクラスのdivがあり、publish_1に変更したいと思います。javascriptが複数の要素に設定されています

今はこれを使用していますが、アイテムは1つだけ変更されます。

publish_0を持つすべてのアイテムにsetattributeを適用する方法。あるいは、

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

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

答えて

3

あなたはjQueryを使ってこれを使用することができますgetElementsByClassNameを使用し、返されたDOM要素をループします。

22

あなたは、すべての要素を反復するループを使用する必要があると個別にそのクラス属性値を設定します。

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

querySelectorAll – bfavaretto

+0

@bfavarettoありがとうございました。 OPのコードをコピーして貼り付けると、それが起こります。 –

+0

私が認めたいと思う以上の時間がありました。 – bfavaretto

3

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行に書かれています。

関連する問題