2010-02-02 105 views
7

我試圖刪除使用jQuery的錶行,並從屏幕上消失,因此,似乎工作,在Firebug中,我仍然可以看到它的代碼。這一行有表單元素,所以我想知道該行是否真的被刪除,因爲我不想要那些提交的值。那麼,刪除真的刪除?下面是我使用的代碼...也許我做錯了?jQuery :::刪除真的刪除?

if($('.delete')) { 
      $(".delete").live('click', function(event) { 
       $(this).closest('tr').remove(); 
      }); 
     } 

回答

9

一個頁面不使用Javascript功能更新的來源。如果你檢查Firebug中的DOM,你應該能夠看到反映的變化。

+0

我正在尋找螢火蟲...而且,我仍然看到那個特定的代碼在那裏消失。所以,我的做法可能有問題嗎?我發佈的內容有什麼明顯的嗎? – phpN00b 2010-02-02 16:40:17

+0

你在看DOM而不是源? – cjk 2010-02-03 08:30:55

+0

爲了澄清ck的注意事項,活體DOM在Firebug的主窗口中的樹中被解析和構造,而在HTML部分或腳本部分中看到的代碼是最初加載的靜態HTML。每當JS對結構進行更改時,就會在正在更改的區域上看到一個黃色突出顯示(並因此一直位於樹上)。 – dclowd9901 2010-04-19 16:19:35

0

是的,jQuery的remove()確實從DOM中刪除元素。

您的代碼可能有問題。

1

它從您的DOM中完全刪除元素。我認爲你可能會看到錯誤的元素,因爲如果它實際上在你的屏幕上被刪除,螢火蟲應該反映這個變化。

你的代碼看起來不錯。

.Remove() Reference

1

沒錯。 remove()方法不會刪除元素。 在「jQuery in Action」中寫道:「請注意,與其他許多jQuery命令一樣,包裝集是作爲此命令的結果返回的。從DOM中刪除的元素仍由此集引用(因此不包含但可以收集垃圾回收),並可以進一步操作使用其他jQuery命令......「 我一直在尋找,它似乎並不是一個實際上刪除元素的jQuery。所以我認爲你應該使用舊的DOM JavaScript函數來完成它。

0

是的。

我前幾天在玩它。您可以在firebug(和其他瀏覽器調試器)中看到該元素消失。