簡體   English   中英

無法使用jQuery的remove()刪除元素

[英]Can't remove element with jquery's remove()

我正在為此網站制作一個潤滑脂腳本: http : rodape-ao-vivo ,我想刪除元素rodape-ao-vivo ,問題是執行$("#rodape-ao-vivo").remove(); 不起作用,但是,如果我做類似的事情

setInterval(function() {
        $("#rodape-ao-vivo").remove();
    }, 1000);

它工作正常,所以我基本上是在請您幫助我了解這里的情況。 也許這只是個小愚蠢的事情,但是我不眠不休,真的很想完成這項工作。

這個DIV是由腳本動態生成的,要刪除它,您需要等到DOM中可以使用此元素,例如,如果由於某些原因其他答案不起作用:{或使用DOM ready處理程序}

$(window).on('load', function () {
    var interval = setInterval(function () {
        if ($("#rodape-ao-vivo").length) {
            $("#rodape-ao-vivo").remove();
            clearInterval(interval);
        }
    }, 100);
});

嗯,也許您正在嘗試在元素創建之前將其刪除? (延遲會有所幫助,因為在那個時候創建​​了元素,您可以將其刪除)

您可能試圖在元素存在之前就將其刪除。 添加一秒鍾的延遲會給瀏覽器足夠的時間來呈現元素,因此您可以將其刪除。 但這不能保證能正常工作,因為一秒鍾可能不足以呈現該元素(例如,慢速連接)。

因此,您應確保文檔已准備就緒,jQuery的方法是:

$(function() {
    $("#rodape-ao-vivo").remove();
});

或者,您可以等待整個文檔加載:

window.onload = function() {
    $("#rodape-ao-vivo").remove();
}

如果您在頁面加載時執行此操作,則使用document.ready();包裝代碼。

$(document).ready(function(){$("#rodape-ao-vivo").remove();});

使用前請確保所有元素都已加載。因此將代碼包裝在函數中,這將確保元素已附加到DOM

$("#rodape-ao-vivo").remove(); //will probably will give you an error.

$(function() {
    $("#rodape-ao-vivo").remove();
}

要么 ,

$( document ).ready(function() {
    $("#rodape-ao-vivo").remove();
})

要么,

jQuery( document ).ready(function( $ ) {
    $("#rodape-ao-vivo").remove();
});

要么,

window.onload = function() {
    $("#rodape-ao-vivo").remove();
}

但是當你這樣做時

setInterval(function() {
        $("#rodape-ao-vivo").remove();
}, 1000);

這將為元素提供時間來獲取DOM負載。因此它可以正常工作。但是可以使用上面列出的函數來代替setInterval

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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