как удалить элементы? удалить это недостаточно

#jquery

#jquery

Вопрос:

Как удалить элементы DOM, чтобы их нельзя было найти впоследствии?

После удаления элементов их все равно можно найти.. Как вы можете избежать этого?

это все равно найдет удаленные элементы

 $(selector).attr('data-amount');
 

Ответ №1:

$(selector).remove() удалит элемент, чтобы его нельзя было найти.remove()

Обновить

Подобно .empty() , метод .remove() извлекает элементы из DOM. Используйте .remove(), когда вы хотите удалить сам элемент, а также все, что внутри него. В дополнение к самим элементам удаляются все связанные события и данные jQuery, связанные с элементами. Чтобы удалить элементы без удаления данных и событий, вместо этого используйте .detach() .

Комментарии:

1. вот так я это делаю .. но этого недостаточно

2. что вы имеете в виду, его недостаточно, вы, должно быть, кэшировали его в противном случае

3. Видишь jsfiddle.net/5r3vx/1 для примера remove работы, как описано выше.

4. моя ошибка.. нашел ошибку 🙂

5. @clarkk: рад, что я был полезен, и да, вы тоже удалили голосование «против», я думаю

Ответ №2:

 $(selected).removeAttr('data-amount');
 

Если вы хотите полностью удалить $(выбранный) из дерева DOM, то

 $(selected).remove();
 

Комментарии:

1. разве нет более простого способа сделать это, чем удалить каждый атрибут и т. Д.?

Ответ №3:

Я предполагаю, что либо: 1. ваш вызов remove ничего не удаляет (дважды проверьте, что ваш $ (селектор) действительно что-то находит)

  1. ваш селектор является ссылкой на DOMNode, и в этом случае вы обновляете jQuery с помощью DOMNode, так что, конечно, это сработает (domNodes не обязательно должны быть в документе)
  2. вы удалили селектор (потому что это было что-то вроде «a: first»), но затем «a: first» все еще работает при повторном запуске, потому что у вас есть другой.