我有几个<span>
个标签可以容纳几秒钟
例如:
<span class="timeout">27</span>
<span class="timeout">58</span>
我每次尝试将它们递增1秒,但是我遇到了一些困难,即它在<span>
标签中放错了数据。
我一定做错了,下面是我试图使用的代码..
它一定是错的,充满了错误,但是,我仍然在努力学习它; - )
function timer() {
var self = $(this);
var idx = $("span.timeout");
var sec = parseInt(self.find('span.timeout').text())
var interval = setInterval(function() {
idx.each(function() {
idx.text(sec++)
});
}, 1000);
}
提前致谢,
- 罗伯特。
答案 0 :(得分:1)
你想这样做:
function timer() {
var self = $(this);
var idx = $("span.timeout");
//console.log(self.find('span.timeout').text()); //gets you nothing
var interval = setInterval(function () {
idx.text(function (_, txt) { //use .text()
return parseInt(txt, 10) + 1; //convert the current text to int and increment it.
});
}, 1000);
}
<强> Fiddle 强>
你的问题在这里var sec = parseInt(self.find('span.timeout').text())
自我只是一个窗口在你的情况下,你正试图在其中找到跨度并获取它的文本。这对你没有任何帮助,你正在做parseInt
什么都没有让你NAN
然后你用它进行计算,这是错误的。因此,您可以使用文本函数的回调并获取该范围的当前文本值,然后返回该范围的更新值。