Różnica między funkcjami Parent (), Parent () i Closest () jQuery
184
Od jakiegoś czasu korzystam z jQuery. Chciałem użyć parent()selektora. Wymyśliłem też closest()selektor. Nie można znaleźć między nimi żadnej różnicy. Czy jest jakiś? Jeśli tak to co?
Jaka jest różnica między parent(), parents()i closest()?
rodzic :::: podróżuje 1 krok wstecz do rodzica .... :::: rodzice ::: podaje listę wszystkich rodziców .... :::: najbliższy ::: podróżuje z powrotem przez rodzeństwo, dopóki nie znajdzie warunku i zwróć tylko pierwszy. Wszystkie te można modyfikować za pomocą dodatkowych selektorów
closest()wybiera pierwszy element, który pasuje do selektora, w górę od drzewa DOM. Zaczyna się od bieżącego elementu i podróżuje w górę.
parent() wybiera jeden element w górę (o jeden poziom wyżej) drzewo DOM.
parents()Metoda jest podobna do, parent()ale wybiera wszystkie pasujące elementy w drzewie DOM. Zaczyna się od elementu nadrzędnego i przesuwa się w górę.
W tej odpowiedzi brakuje ważnego punktu: „Najbliższe” zaczyna się od bieżącego elementu i podróżuje w górę, gdzie jako „Rodzice” zaczyna się od elementu macierzystego i podróżuje w górę.
Metody .parents () i .closest () są podobne pod tym względem, że oba przechodzą w górę drzewa DOM. Różnice między nimi, choć subtelne, są znaczące:
.najbliższy()
Zaczyna się od bieżącego elementu
Podróżuje w górę drzewa DOM, aż znajdzie dopasowanie dla dostarczonego selektora
Zwrócony obiekt jQuery zawiera zero lub jeden element
.rodzice()
Zaczyna się od elementu nadrzędnego
Podróżuje w górę drzewa DOM do elementu głównego dokumentu, dodając każdy element przodka do kolekcji tymczasowej; następnie filtruje tę kolekcję na podstawie selektora, jeśli jest on dostarczony
Zwrócony obiekt jQuery zawiera zero, jeden lub wiele elementów
.rodzic()
Biorąc pod uwagę obiekt jQuery, który reprezentuje zestaw elementów DOM, metoda .parent () pozwala nam przeszukiwać rodziców tych elementów w drzewie DOM i konstruować nowy obiekt jQuery z pasujących elementów.
Uwaga: metody .parents () i .parent () są podobne, z tym wyjątkiem, że ta ostatnia podróżuje tylko o jeden poziom wyżej w drzewie DOM. Również metoda $ („html”). Parent () zwraca zestaw zawierający dokument, natomiast $ („html”). Parent () zwraca pusty zestaw.
The .parents() and .parent() methods are similar, except that the latter only travels a single level up the DOM tree. Also, $("html").parent() method returns a set containing document whereas $("html").parents() returns an empty set.
Podróżuje w górę drzewa DOM do elementu głównego dokumentu, dodając każdy element przodka do kolekcji tymczasowej; następnie filtruje tę kolekcję na podstawie selektora, jeśli jest on dostarczony
Zwrócony obiekt jQuery zawiera zero, jeden lub wiele elementów
Istnieje różnica między nimi $(this).closest('div')a$(this).parents('div').eq(0)
Zasadniczo closestzacznij dopasowywać element od bieżącego elementu, podczas gdy parentszacznij dopasowywać elementy od elementu nadrzędnego (jeden poziom powyżej bieżącego elementu)
parent()Metoda zwraca bezpośredni element nadrzędny wybranego elementu. Ta metoda przemierza tylko jeden poziom wyżej w drzewie DOM.
parents()Metoda pozwala nam wyszukiwać przodków tych elementów w drzewie DOM. Zacznij od danego selektora i przejdź w górę.
The**.parents()**and**.parent()** methods are almost similar,except that the latter only travels a single level up the DOM tree.Also,**$("html").parent()** method returns a set containing document whereas **$("html").parents()** returns an empty set.[closest()][3]method returns the first ancestor of the selected element.An ancestor is a parent, grandparent, great-grandparent,and so on.This method traverse upwards from the current element, all the way up to the document's root element (<html>), to find the first ancestor of DOM elements.
According to docs:
**closest()** method is similar to **parents()**, in that they both traverse up the DOM tree. The differences are as follows:
**closest()**
Begins with the current element
Travels up the DOM tree and returns the first (single) ancestor that matches the passed expression
The returned jQuery object contains zero or one element
**parents()**
Begins with the parent element
Travels up the DOM tree and returns all ancestors that matches the passed expression
The returned jQuery object contains zero or more than one element
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.