В чем функциональная разница между этими тремя jQuery
методами:
- отсоединить ()
- скрывать()
- удалять()
javascript
jquery
Вивек
источник
источник
detach
взгляните на stackoverflow.com/questions/12058896/…Ответы:
hide()
устанавливаетdisplay
свойство CSS согласованных элементов равнымnone
.remove()
полностью удаляет совпадающие элементы из модели DOM.detach()
похожеremove()
, но сохраняет сохраненные данные и события, связанные с согласованными элементами.Чтобы повторно вставить отсоединенный элемент в DOM, просто вставьте возвращенный
jQuery
набор изdetach()
:источник
remove
вместоdetach
, пример все еще работает.remove()
и снова присоедините его, привязка исчезнет, и щелчок по диапазону ничего не сделает. При вызовеdetach()
и повторном подключении привязка остается, а обработчик кликов продолжает работать.Представьте себе лист бумаги на столе, на котором карандашом написаны заметки.
hide
-> накинуть на него одеждуempty
-> удалить заметки ластикомdetach
-> возьмите бумагу в руку и держите ее там для любых будущих плановremove
-> возьмите бумагу и выбросьте ее в мусорную корзинуБумага представляет элемент, а примечания представляют содержимое (дочерние узлы) элемента.
Немного упрощено и не совсем точно, но понятно.
источник
hide()
устанавливает для отображения совпадающего элемента значение none.detach()
удаляет совпадающие элементы, включая весь текст и дочерние узлы.Этот метод хранит все данные, связанные с элементом, и поэтому может использоваться для восстановления данных элемента, а также обработчиков событий.
remove()
также удаляет совпавшие элементы, включая весь текст и дочерние узлы.Однако в этом случае можно восстановить только данные элемента, а не его обработчики событий.
источник
В jQuery есть три метода удаления элементов из DOM. Эти три метода
.empty()
,.remove()
и.detach()
. Все эти методы используются для удаления элементов из DOM, но все они разные..скрывать()
Скройте совпадающие элементы. Без параметров метод .hide () - это самый простой способ скрыть элемент HTML:
.empty ()
Метод .empty () удаляет все дочерние узлы и содержимое выбранных элементов. Этот метод не удаляет сам элемент или его атрибуты.
Заметка
Метод .empty () не принимает никаких аргументов, чтобы избежать утечки памяти. jQuery удаляет другие конструкции, такие как обработчики данных и событий, из дочерних элементов перед удалением самих элементов.
пример
Это приведет к созданию структуры DOM с удаленным текстом Hai:
Если бы внутри
<div class="hai">
у нас было какое-то количество вложенных элементов , они бы тоже были удалены..удалять()
Метод .remove () удаляет выбранные элементы, включая весь текст и дочерние узлы. Этот метод также удаляет данные и события выбранных элементов.
Заметка
Используйте .remove (), когда хотите удалить сам элемент, а также все, что внутри него. В дополнение к этому удаляются все связанные события и данные jQuery, связанные с элементами.
ПРИМЕР
Рассмотрим следующий HTML-код:
Это приведет к созданию структуры DOM с
<div>
удаленным элементом:Если бы внутри
<div class="hai">
у нас было какое-то количество вложенных элементов , они бы тоже были удалены. Другие конструкции jQuery, такие как обработчики данных или событий, также удаляются..detach ()
Метод .detach () удаляет выбранные элементы, включая весь текст и дочерние узлы. Однако он хранит данные и события. Этот метод также сохраняет копии удаленных элементов, что позволяет их повторно вставить позже.
Заметка
Метод .detach () полезен, когда удаленные элементы должны быть повторно вставлены в DOM позже.
пример
Для получения дополнительной информации посетите: http://www.scriptcafe.in/2014/03/what-is-difference-between-jquery_15.html.
источник
источник