Hier ist meine Geige: Ссылка
HTML:
%Vor%jQuery:
%Vor% Ich brauche es also, wenn du auf ein p.click
klickst, wird das nächste p.target
rot.
Wenn Sie also auf 'Click 1'
klicken, wird 'Target 1'
rot. Wenn Sie auf 'Click 2'
klicken, wird 'Target 3'
rot.
Sowie .find
habe ich .closest
ausprobiert und aus der jQuery-Dokumentation scheint es mir, als ob es funktionieren sollte. Wie Sie dem HTML entnehmen können, ist .target
kein Kind von .click
, falls das einen Unterschied macht.
Hier ist ein anderer Ansatz, obwohl ich nicht weiß, wie performant .index()
in diesem Fall ist. Dies setzt auch voraus, dass es nie zwei aufeinanderfolgende .click
Elemente gibt (oder anders formuliert: Es gibt immer mindestens ein .target
Element zwischen zwei .click
Elementen):
Dies funktioniert, weil die Elemente in der Reihenfolge ausgewählt werden, in der sie im Dokument erscheinen.
Basierend auf deinem aktualisierten HTML habe ich diese Geige erstellt: Ссылка
... und benutzte diese jQuery
%Vor%Hast du das gewollt?
Ihr HTML-Konstrukt erleichtert den Zugriff auf bestimmte Ziele nicht. Wir können erreichen, was Sie wollen, aber das Skript wird kompliziert, wenn Sie auf diese Weise verfahren. Fügen Sie stattdessen ein Gruppierungs-Div hinzu, mit dem Sie das Skript klein und einfach gestalten können.
HTML:
%Vor%JS:
%Vor% .nextAll
funktioniert für die Geschwister. In Ihrem Fall wird nach allen # clicks Geschwister mit der Klasse .target
gesucht.
Was Sie brauchen, ist parents -> sibling -> child
.
Tags und Links jquery jquery-selectors