2013-05-02 41 views
1

我有一個錯誤使用getElementsByClassName,它不會顯示我想要的結果。 當我使用一個getElementbyID,與類但沒有辦法順利工作,我沒有在控制檯中的錯誤,我不明白爲什麼結果不顯示。與getElementsByClassName的倒計時錯誤

document.getElementsByClassName('countdown_product').innerHTML = '<span class="texte_countdown" style="text-align:center;"></span><br/>'; 
document.getElementsByClassName('countdown_product').innerHTML += '<span class="days">'+ days+ '</span>'; 
document.getElementsByClassName('countdown_product').innerHTML += '<span class="hours"><span class="pts_countdown">:</span>' + hours+ '</span>'; 
document.getElementsByClassName('countdown_product').innerHTML += '<span class="minutes"><span class="pts_countdown">:</span>' + minutes+ '</span>'; 
document.getElementsByClassName('countdown_product').innerHTML += '<span class="seconds"><span class="pts_countdown">:</span>' + seconds+ '</span>'; 
document.getElementsByClassName('countdown_product').innerHTML += '<span class="milliseconds"><span class="pts_countdown">:</span>' + milliseconds+ ' </span>' 

fiddle

+1

您對此問題使用了jQuery標記。如果你真的使用jQuery,爲什麼不使用jQuery標記,如下所示:'$('。classname')' 這將返回該類中所有jQueryElements的列表。 – codingjoe 2013-05-02 12:26:11

+1

請注意,getElementsByClassName返回一組元素,而不僅僅是一個;) – gustavodidomenico 2013-05-02 12:26:13

+0

我不知道我不能這樣做.. – artSx 2013-05-02 12:28:13

回答

2

getElementsByClassName返回所選DOM元素對象的數組,就應該通過選擇的元件進行迭代,並更新innerHTML每選定的元素。您正在向返回的Array對象添加一個innerHTML屬性,這當然不會引發錯誤,但不會達到您期望的效果。

var elems = document.getElementsByClassName('countdown_product'); 
for (var i = 0; i < elems.length; i++) { 
    elems[i].innerHTML = '<span class="texte_countdown" style="text-align:center;">text</span>'; 
} 

當您正在加載的jQuery您可以通過類名選擇元素,並使用htmlappend方法,jQuery使用幕後each方法,併爲您更新innerHTML性能。

$('.countdown_product').html('<element>content</element>'); 
+0

我試過你是我的小提琴上的解決方案,但它不能再工作:@ – artSx 2013-05-02 12:41:43

+0

@artSx你是什麼意思_it不工作_ ? http://jsfiddle.net/Vjdwg/ – undefined 2013-05-02 12:43:30

+0

我試圖用jQuery $('...)的解決方案,但結果仍然沒有出現 – artSx 2013-05-02 12:45:40