Jaka jest różnica funkcjonalna między tymi trzema jQuery
metodami:
- odłączyć()
- ukryć()
- usunąć()
javascript
jquery
Vivek
źródło
źródło
detach
spójrz na stackoverflow.com/questions/12058896/ ...Odpowiedzi:
hide()
ustawiadisplay
właściwość CSS dopasowanych elementów nanone
.remove()
całkowicie usuwa dopasowane elementy z DOM.detach()
jest podobnyremove()
, ale zachowuje przechowywane dane i zdarzenia związane z dopasowanymi elementami.Aby ponownie wstawić odłączony element do DOM, po prostu wstaw zwrócony
jQuery
zestaw zdetach()
:źródło
remove
zamiast tego użyjędetach
, przykład nadal działa.remove()
i dołącz je ponownie, powiązanie zniknie, a kliknięcie zakresu nic nie da. Jeśli zadzwoniszdetach()
i ponownie podłączysz, powiązanie pozostanie, a moduł obsługi kliknięcia nadal działa.Wyobraź sobie kartkę papieru na stole z notatkami zapisanymi ołówkiem.
hide
-> rzuć na to ubranieempty
-> usuń notatki za pomocą gumkidetach
-> chwyć papier do ręki i trzymaj go tam na przyszłośćremove
-> chwyć papier i wyrzuć go do koszaPapier przedstawia element, a notatki przedstawiają zawartość (węzły potomne) elementu.
Nieco uproszczone i nie do końca dokładne, ale łatwe do zrozumienia.
źródło
hide()
ustawia wyświetlanie dopasowanego elementu na brak.detach()
usuwa dopasowane elementy, w tym cały tekst i węzły potomne.Ta metoda przechowuje wszystkie dane skojarzone z elementem, dzięki czemu można jej użyć do przywrócenia danych elementu, a także programów obsługi zdarzeń.
remove()
usuwa również dopasowane elementy, w tym cały tekst i węzły potomne.Jednak w tym przypadku można przywrócić tylko dane elementu, a nie jego procedury obsługi zdarzeń.
źródło
W jQuery istnieją trzy metody usuwania elementów z DOM. Te trzy metody są
.empty()
,.remove()
i.detach()
. Wszystkie te metody służą do usuwania elementów z DOM, ale wszystkie są różne..ukryć()
Ukryj dopasowane elementy. Bez parametrów metoda .hide () jest najprostszym sposobem ukrycia elementu HTML:
.pusty()
Metoda .empty () usuwa wszystkie węzły potomne i zawartość z wybranych elementów. Ta metoda nie usuwa samego elementu ani jego atrybutów.
Uwaga
Metoda .empty () nie przyjmuje żadnego argumentu, aby uniknąć wycieków pamięci. jQuery usuwa inne konstrukcje, takie jak programy obsługi danych i zdarzeń, z elementów podrzędnych przed usunięciem samych elementów.
Przykład
Spowoduje to powstanie struktury DOM z usuniętym tekstem Hai:
Gdybyśmy mieli w środku dowolną liczbę zagnieżdżonych elementów
<div class="hai">
, one również zostałyby usunięte..usunąć()
Metoda .remove () usuwa wybrane elementy, w tym cały tekst i węzły potomne. Ta metoda usuwa również dane i zdarzenia z wybranych elementów.
Uwaga
Użyj .remove (), jeśli chcesz usunąć sam element, a także wszystko, co się w nim znajduje. Oprócz tego wszystkie powiązane zdarzenia i dane jQuery skojarzone z elementami są usuwane.
PRZYKŁAD
Rozważ następujący kod HTML:
Spowoduje to powstanie struktury DOM z
<div>
usuniętym elementem:Gdybyśmy mieli w środku dowolną liczbę zagnieżdżonych elementów
<div class="hai">
, one również zostałyby usunięte. Inne konstrukcje jQuery, takie jak programy obsługi danych lub zdarzeń, również są usuwane..odłączyć()
Metoda .detach () usuwa wybrane elementy, w tym cały tekst i węzły potomne. Jednak zachowuje dane i zdarzenia. Ta metoda zachowuje również kopię usuniętych elementów, co pozwala na ich ponowne włożenie w późniejszym czasie.
Uwaga
Metoda .detach () jest przydatna, gdy usunięte elementy mają zostać ponownie wstawione do DOM w późniejszym czasie.
Przykład
Aby uzyskać więcej informacji, odwiedź: http://www.scriptcafe.in/2014/03/what-is-difference-between-jquery_15.html
źródło
źródło