Die einfachste Möglichkeit besteht darin, ein gemeinsames übergeordnetes Element zu gehen (in diesem Fall die Tabellenzeile), dann wieder auf die, die Sie wollen:
$(".mycheckbox").closest("tr").find(".myparentid")
Edit: So fügen einige Zusätzliche Informationen:
$(".mycheckbox")
ist die Ausgangsposition ein, es ist an: tr> td> input.mycheckbox
(wo >
im HTML-Baum direkt unter bedeutet)
.closest
bewegt sich nach oben, bis der Baum es findet ein passendes übergeordnetes Element, so wird .closest("tr")
<tr role="row" class="odd">
, indem man die direkten pare finden nt "td", dann ist es direkter Elternteil "tr".
Normalerweise würde ich eine Klasse verwenden hier (<tr class="businessobjectcontainer">
) (je nachdem, was das Business-Objekt ist), dann kann es ein div
oder tr
sein, wenn Sie diesen Teil später ändern und .odd
sehen würde ich nehme an, dies ist für Styling und es wird eine .even
sein - das ist also nicht ideal als Selektor. Also müsste "tr" tun.
.find()
macht das Gegenteil von .closest
und den Baum nach einem passenden Elemente suchen geht, in diesem Fall .myparentid
finden: tr> td> span.myparentid
das ist, was Sie suchen.
.find()
möglicherweise nicht die effizienteste, aber es ist wahrscheinlich die flexibelste, da es bedeutet, dass Sie den Inhalt Ihrer tr
um so viel verschieben können, wie Sie möchten.
Eine Bewegung effiziente Alternative sein könnte zu verwenden:
$(">td>span.myparentid", $(".mycheckbox").closest("tr"))
aber meistens ist es nur die Syntax ändern.
Ich glaube nicht, dass er in 'Geschwister' suchen will, weil _I nicht funktioniert, weil die nächste Suche nur in Geschwister ... _ –
@GuruprasadRao nicht sicher, was Sie sagen ... '.next' sucht Geschwister nur (und nur nach dem aktuellen Element), deshalb verwendet diese Antwort nicht '.next' und sucht nicht nur Geschwister –
Ich meine die Antwort findet die gleiche Sache, was' .next' richtig macht. Aber der Unterschied ist, dass du jetzt von "Eltern" kommst. Ich bin mir nicht sicher, was OP eigentlich zu finden ist. –