2014-10-03 39 views
1

我有一個$("#MiID").remove();函數的問題。jQuery remove()函數

我用:

$(document).ready(function() { 
    $("#mydiv").remove(); 
}); 

firebug中,div被刪除,但如果我點擊View Page Sourcediv在那裏出現。

我該如何解決問題?

爲什麼在firebug被刪除,但在DOM不是?

更新: 問題是谷歌。谷歌閱讀div的內容,谷歌使用「div」的「h1」作爲我網站的關鍵詞。這個div在我網站的每個頁面都重複出現,但不知道是否能糾正這個問題。我可以隱藏和取消隱藏在div

+0

這裏你不需要「Espanol」版本......我已經添加了');',如果它不在你的代碼中,請刪除它。 – 2014-10-03 06:46:59

+1

'爲什麼在firebug被刪除,但在DOM不是?'它從DOM中刪除。查看頁面源代碼並不反映實際的DOM狀態。 – dfsq 2014-10-03 06:47:05

+0

嘗試檢查元素'if($(「#mydiv」).length> 0)' – 2014-10-03 06:48:14

回答

3

元素確實是從DOM樹中刪除當您使用remove()功能。

查看頁面源將顯示服務器上的原始內容,並且不考慮客戶端對DOM的修改。

3

這是預期的行爲。 jQuery不能更改您的初始HTML源代碼(這是View Source顯示的內容),而只是實際的DOM(這是Firebug顯示的內容)。幸運的是,您沒有理由關心99.9999%的Web應用程序中的初始HTML源代碼的內容 - 您只關心DOM是什麼,因爲這是用戶看到的。

+0

感謝您的回答。 問題是谷歌。谷歌讀取「div」的「h1」(雖然「div」對用戶不可見),並將其用作SEO的關鍵字。問題在於div在所有頁面上加載,但並不總是顯示。 – Daniel 2014-10-03 07:08:20

0

其實當瀏覽器下載DOM,它下載的所有元素,然後設置DOM,如果發生任何更改後的DOM下載它只會在用戶端。 這並不意味着你將它從jquery中移除,所以元素實際上從源代碼中刪除,而是從客戶端的DOM中移除,並且原始下載的源代碼保持不變。