2017-08-30 7 views
1

私は3つの要素を作成し、後で私のコードでは、それぞれに同じクラスを追加する必要があります。現時点では、このような作業をしています。配列に格納された要素にクラスを追加する簡潔な方法はありますか?

const item1 = document.createElement('div'); 
const item2 = document.createElement('div'); 
const item3 = document.createElement('div'); 

// later on in the code 

function addClasses() { 
    item1.classList.add('item--animating'); 
    item2.classList.add('item--animating'); 
    item2.classList.add('item--animating'); 
} 

ただし、この繰り返しはDRYと思われます。これを書くためのより短い方法がありますか?

私はアイテムの配列を作成し、配列をループして各クラスにクラスを追加することができましたが、これは私のコードを簡潔かつ簡単にするという点では生産的ではありません。

+3

'[ITEM1、ITEM1、項目3] .forEach(X => x.classList.add( '項目 - アニメーション'))それらは'場合同じ親の下で、このクラスを親クラスに追加し、それに応じてCSSを更新することができます – Rajesh

+1

@Rajesh、なぜclassName + = 'にダウングレードしますか?これにはスペーシングクラスに関する問題があります。 – trincot

答えて

0

const item1 = document.createElement('div'); 
const item2 = document.createElement('div'); 
const item3 = document.createElement('div'); 
const allItems = [item1, item2, item3]; 

allItems.forEach(x => x.classList.add('item--animating')); 
0

document.getElementsByTagNameを使用すると、配列内のすべてのdiv要素を取得できます。

ラジェッシュの答えに拡大
function addClasses() { 
    var divs = document.getElementsByTagName('div'); 

    for (var i=0;i<divs.length;i++) { 
     divs[i].classList.add('item--animating'); 
    } 

} 
関連する問題