setTimeout()函数不使用';t在jQuery each()函数中工作

setTimeout()函数不使用';t在jQuery each()函数中工作,jquery,delay,settimeout,each,Jquery,Delay,Settimeout,Each,我想将代码应用于一系列匹配的元素,每个元素之间有一个延迟。我不明白为什么以下代码不起作用: jQuery(".myElement").each(function() { setTimeout(function() { jQuery(this).remove(); }, 1000); }); 我知道也有人问过类似的问题,但答案对我来说并不适用。我知道这段代码同时对每个匹配的元素应用延迟

我想将代码应用于一系列匹配的元素,每个元素之间有一个延迟。我不明白为什么以下代码不起作用:

        jQuery(".myElement").each(function() {
            setTimeout(function() {
                jQuery(this).remove();
            }, 1000);
        });

我知道也有人问过类似的问题,但答案对我来说并不适用。我知道这段代码同时对每个匹配的元素应用延迟,这不是我想要的。但是我仍然不知道如何使它工作。

不需要
。每个

setTimeout(function() {
    jQuery(".myElement").remove();
}, 1000);

现在工作的原因是因为
不再引用每个
中的元素--

不需要
。每个

setTimeout(function() {
    jQuery(".myElement").remove();
}, 1000);
现在工作的原因是因为
不再引用每个
中的元素--

问题在于调用jQuery(this.remove()并将其返回值传递给setTimeout。假设您打算在超时过期时运行此程序。如果是这种情况,您需要将其包装在一个函数中,以便该函数将被传递到setTimeout,并在计时器过期时执行

jQuery('.myElement').each(function() {
    var thiz = jQuery(this);
    setTimeout(function() { thiz.remove(); }, 1000);
})

问题在于调用jQuery(this.remove()并将其返回值传递给setTimeout。假设您打算在超时过期时运行此程序。如果是这种情况,您需要将其包装在一个函数中,以便该函数将被传递到setTimeout,并在计时器过期时执行

jQuery('.myElement').each(function() {
    var thiz = jQuery(this);
    setTimeout(function() { thiz.remove(); }, 1000);
})

谢谢你的回答。不管什么原因,我都不能让他们两个都工作。然而,这段代码最终为我完成了这项工作:

jQuery(".element").each( function(e) {
    var element = jQuery(this);
    setTimeout(function () {
        jQuery(element).remove();
    }, e*1000);
});

谢谢你的回答。不管什么原因,我都不能让他们两个都工作。然而,这段代码最终为我完成了这项工作:

jQuery(".element").each( function(e) {
    var element = jQuery(this);
    setTimeout(function () {
        jQuery(element).remove();
    }, e*1000);
});

和的可能重复。和的可能重复。不知道为什么需要这样做,但成功了,但使用jQuery()声明变量是关键。不知道为什么需要这样做,但成功了,但使用jQuery()声明变量是关键。