#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 ничего не удаляет (дважды проверьте, что ваш $ (селектор) действительно что-то находит)
- ваш селектор является ссылкой на DOMNode, и в этом случае вы обновляете jQuery с помощью DOMNode, так что, конечно, это сработает (domNodes не обязательно должны быть в документе)
- вы удалили селектор (потому что это было что-то вроде «a: first»), но затем «a: first» все еще работает при повторном запуске, потому что у вас есть другой.