2010-02-02 2 views
7

Я пытаюсь удалить строку таблицы с помощью jQuery, и, хотя она исчезает с экрана и, следовательно, кажется, работает, в Firebug я все еще вижу код для него. В этой строке есть элементы формы, и поэтому я хочу понять, действительно ли строка удалена или нет, потому что я бы не хотел, чтобы эти значения были отправлены. Итак, действительно ли удалить удаление? Ниже приведен код, который я использую ... Может быть, я делаю это неправильно?jQuery ::: Удалить действительно удалить?

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

ответ

9

Источник страницы не обновляется с помощью функций Javascript. Если вы проверите DOM в Firebug, вы сможете увидеть отраженные изменения.

+0

Я смотрю в firebug ... И я до сих пор вижу код для этого конкретного удаления. Итак, возможно, что-то не так с тем, как я это делаю? Есть ли что-то очевидное из того, что я опубликовал? – phpN00b

+0

Вы смотрите на DOM, а не на источник? – cjk

+0

Для пояснения к примечанию ck, живой DOM анализируется и структурируется в дереве в главном окне Firebug, тогда как код, который вы видите в разделе HTML или в разделе Script, представляет собой статический HTML, как первоначально загружен. Всякий раз, когда в структуру вносятся изменения JS, вы видите желтую подсветку на изменяемой области (и, следовательно, на всем пути вверх по дереву). – dclowd9901

0

Да, jQuery's remove() действительно удаляет элементы из DOM.

Возможно, что-то не так в коде.

1

Он полностью удаляет элемент из вашей DOM. Я думаю, вы можете смотреть на неправильный элемент, потому что, если он фактически удаляется на вашем экране, firebug должен отражать это изменение.

Ваш код выглядит хорошо.

.Remove() Reference

1

Это верно. Метод remove() не удаляет элементы. В «jQuery in Action» написано, что «Обратите внимание, что, как и многие другие команды jQuery, завершенный набор возвращается в результате этой команды. Элементы, удаленные из DOM, по-прежнему ссылаются на этот набор (и, следовательно, не все же отвечающий за сбор мусора) и может быть дополнительно задействован при использовании других команд jQuery ... » Я искал, и это не похоже на jQuery, который фактически удаляет элементы. Поэтому я думаю, вы должны сделать это, используя старые функции DOM JavaScript.

0

Да, так оно и есть.

Я играл с ним на днях. Вы можете видеть в firebug (и других отладчиках браузера), что элемент исчезает.

Смежные вопросы