[英]How do I check if an element is in the DOM using a jquery deferred object?
我想知道是否可以使用jQuery延遲對象來測試元素是否在DOM中。
這就是我在想的:
function chkDOM(selector) {
if $(selector) {
return deferred.promise();
}
}
$.when(chkDOM(selector)).then(function() {
// do something
});
我不知道如何形成代碼來實現這一點,但我希望我的問題是有道理的。 如果我可以讓這個工作正常工作,那么我基本上可以延遲調用某些jquery插件,以便它們實際運行正常。
謝謝!
我假設你正在運行一個循環,定期檢查選擇器的存在:
var dfd = $.Deferred();
var checkSelector = setInterval(function () {
if ($("#selector").length) {
dfd.resolve();
clearInterval(checkSelector);
}
}, 1000);
dfd.done(function () {
console.log('it has been added');
});
請注意,不需要$.when
; 你可以直接在延遲對象上使用.done
。
您可以使用以下內容檢查元素是否存在。
您不必使用延期。
if( jQuery(selector).length > 0 ) {
// exists
}
要檢查DOM中的元素,只需使用
if($(selector).length > 0) {
// do something
}
$(selector)返回與selector的條件匹配的元素數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.