2010-02-02 106 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(和其他浏览器调试器)中看到该元素消失。