为什么jQuery在循环时返回span元素内容的每个字符?
问题描述:
好吧,我有一堆班末级班。我希望独立于其他内容。为什么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个字符?如何让它返回整个角色?
答
当拨打.text()
时,您可以选择传入一个功能在集合中的每个项目上执行。
$("span.endtime").text(function(i, text){
$('.counter').countdown({
until: text,
format: 'HMS'
})
});
上jsfiddle简单的例子。
答
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.
答
试试这个代码
var text = $('.endtime');
for(var i = 0; i < text.length; i++) {
$('.counter').countdown({
until: text[i].text(),
format: 'HMS'
})
}
不也替换文本,在这种情况下,用'undefined'? – Kobi 2011-03-28 12:38:07
@Kobi,只要没有任何东西被返回,文本元素不会被改变。 – 2011-03-28 12:39:31
不知道!似乎jQuery的API网站正在关闭... – Kobi 2011-03-28 12:40:46