2016-08-16 5 views
1

私は要素のクラスを変更したいですが、クラスで取得します(作業しないでください)。 私はそれをidで選ぶとうまくいきます。 私は純粋なjavascriptでそれを作りたいです。なぜ要素のクラスを変更できないのですか?

function My(){ 

    var a = document.getElementById('myClass'); 
    a.className += ' red'; 

    var b = document.getElementsByClassName('myClass'); 
    b.className += ' red'; 

} 
My(); 
+0

2番目のメソッドが 'getElement ** s **' – Jonathan

答えて

3

getElementsByClassName戻りarray-like objectなく、単一の要素。

indexを使用するか、loopを使用して、指定されたクラスを持つすべての要素にクラスを適用します。

function My() { 
    var a = document.getElementById('myClass'); 
    a.className += ' red'; 
    var b = document.getElementsByClassName('myClass'); 
    [].forEach.call(b, function(el) { 
    el.className += ' red'; 
    }); 
} 
My(); 

注:Element.classList.addではなくElement.className += ' CLASS_NAME';

1

を用いることができgetElementsByClassNamearray-like objectを返すので、それはあります。

オブジェクトを取得してクラスを割り当てるには、配列を反復するか、indexを使用する必要があります。

関連する問題