我不需要在jQuery中执行此操作的插件,谢谢:o)
但是我不想在所有.post-box-time div上运行$ .get()因此我使用$ .each。但它只是更新了最后一个元素,但是给了我其他div的结果。 - >这就像它没有做$ .each()..
这是我的代码:
setInterval(function() {
$('.post-box-time').each(function() {
var time = $(this).attr('data-time');
$this = $(this);
$.get("sys/calls.handler.php", { do: 'timeSince', data: time },
function(data){
$this.html(data);
});
}); // each function
}, 1000);
答案 0 :(得分:6)
你应该在声明var
之前抛出$this
。
你将它声明为一个全局变量,而不是在each()
运行的每个函数的范围内(这就是var所做的)声明它。所以当你的响应回调实际上被触发时,你的循环已经完成并将全局变量$this
(或window.$this
)设置为它在通过each()循环时找到的最后一个.post-box-time的值
答案 1 :(得分:2)
答案 2 :(得分:-1)
我认为每个函数中的这个都是对原始DOM元素的引用。 .each从0开始给出索引,所以你应该改为$('.post-box-time:eq(' + i + ')')
。