簡體   English   中英

如何使用jquery延遲對象檢查元素是否在DOM中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM