2011-03-28 24 views
1

好吧,我有一堆班末級班。我希望獨立於其他內容。爲什麼jQuery在循環時返回span元素內容的每個字符?

<span class='endtime'> 
    2011-03-29 00:01:03 
</span> 

<span class='endtime'> 
2011-03-31 19:20:11 
</span> 

<span class='endtime'> 
2011-03-28 19:00:12 
</span> 

但問題是,當我這樣做:

var text = $('.endtime').text(); 
for(var i = 0; i < text.length; i++) { 
     $('.counter').countdown({ 
      until: text[i], 
      format: 'HMS' 
     }) 
} 

文本的內容只有1個字符?如何讓它返回整個角色?

回答

3

當撥打.text()時,您可以選擇傳入一個功能在集合中的每個項目上執行。

$("span.endtime").text(function(i, text){ 
     $('.counter').countdown({ 
      until: text, 
      format: 'HMS' 
     }) 
}); 

jsfiddle簡單的例子。

+0

不也替換文本,在這種情況下,用'undefined'? – Kobi 2011-03-28 12:38:07

+0

@Kobi,只要沒有任何東西被返回,文本元素不會被改變。 – 2011-03-28 12:39:31

+0

不知道!似乎jQuery的API網站正在關閉... – Kobi 2011-03-28 12:40:46

2

text()返回一個字符串第一個元素,不是所有元素的所有文本!

要通過遍歷所有元素,試試這個:

$('.endtime').each(function(){ 
    var text = $(this).text(); 
    //something with text 
}); 

如果你真的想要一個陣列你也可以這樣寫:

var texts = $('.endtime') 
      .map(function(){return $(this).text();}) 
      .get(); 
// texts is now an array of strings. 
// rest of the code is the same. 
1

試試這個代碼

var text = $('.endtime'); 
for(var i = 0; i < text.length; i++) { 
    $('.counter').countdown({ 
     until: text[i].text(), 
     format: 'HMS' 
    }) 
} 
相關問題