Obecnie próbuję znaleźć rodzica rodzica elementu. Kliknięto łącze, które znajduje się w a <td>
, i chciałbym pobrać <tr>
obiekt.
Dlaczego "$ (this) .parent (). Parent ()" nie zadziała? Co będzie?
Dzięki,
Brendan
Edycja: Wygląda na to, że błąd w mojej składni zrzucił całą sprawę. „$ (this) .parent (). parent ()” faktycznie działa, ale ostatecznie zdecydowałem się na $ (this) .closest ('tr') ”, ponieważ wydaje się być najbardziej wydajnym rozwiązaniem.
javascript
jquery
bloudermilk
źródło
źródło
Odpowiedzi:
Najlepszym sposobem byłoby prawdopodobnie użycie
closest
:$(this).closest('tr');
Sprawdź dokumentację :
źródło
Powinno działać. Możesz także spróbować $ (this) .parents (tag), gdzie tag to tag, który chcesz znaleźć.
Na przykład:
$(this).parents("tr:first")
Znajdzie najbliższy tr „w górę łańcucha”.
źródło
To powinno zadziałać ... możesz spróbować
$(this).parents(':eq(1)');
.Parents (selector) mówi, że pobierz wszystkich przodków, którzy pasują do selektora
a: eq (1) mówi, że znajdź oneth (indeksowany zero, czyli drugi) element na liście
źródło
Ten fragment działał dla mnie w przeszłości:
$(this).parent().parent();
Prześlij nam kod, aby zobaczyć, czy gdzieś może być inny problem ...
źródło
$(this).parent().parent()
bez problemuteż spróbuj
$(this).closest('div.classname').hide();
źródło
Jeśli masz jakikolwiek identyfikator / klasę dla rodzica, możesz użyć rodziców (), ale to da ci wszystkich rodziców aż do <body>, chyba że przefiltrujesz () lub zatrzymasz w inny sposób, na przykład
$(this).parents('.myClass');
Mam nadzieję, że to komuś pomoże :)
źródło
Spróbuj opakować $ (this) .parent () w obiekt jQuery, taki jak $ ($ (this) .parent ()) Często widzę potrzebę zrobienia tego, aby upewnić się, że mam prawidłowy obiekt jquery. Stamtąd powinieneś być w stanie skontaktować się z rodzicem lub być może używając prev ().
źródło
var getParentNode = function(elem, level) { level = level || 1; for (var i = 0; i < level; i++) { if (elem != null) { elem = elem.parentNode; } } return elem; }
źródło
.closest()
nie zawsze jest najlepszą opcją, szczególnie gdy masz tę samą konstrukcję elementu.<div> <div> <div> </div> </div> </div>
Możesz zrobić rodzic rodzica i jest to bardzo łatwe:
var parent = $('.myDiv').parent(); var parentParent = $(parent).parent(); var parentParentParent = $(parentParent).parent();
itp.
źródło