2016-08-16 128 views
1

我想改變元素的類,但按類(不工作)得到它。 如果我選擇它,它的工作原理。 我想使用純javascript。爲什麼不能改變元素類?

function My(){ 

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

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

} 
My(); 
+0

請注意第二種方法如何說'getElement ** s **' – Jonathan

回答

3

getElementsByClassNamearray-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

這是因爲getElementsByClassName回報array-like object

您必須迭代數組或使用索引來獲取對象並分配類。

相關問題