2010-12-10 9 views
7

Wie wählt man einen Knoten nach $(this), der mit einem bestimmten Selektor übereinstimmt?Verwenden von jQuery, wie Sie die ersten nächsten Elemente auswählen, die mit einem bestimmten Selektor übereinstimmen?

zB:

<textarea id="foo"></textarea> 
<a href="#">someLink</a> 
<a href="#">someOtherLink</a> 
<textarea id="bar"></textarea> 

Mit direkt aus über $ Auswahl #bar ("# bar"), wie kann ich es wählen aus #foo?

+0

Was ist die Regel/Selektor, auf die Sie abgestimmt werden? Textfeld? –

+0

@Paul Schreiber: Das erste nächste Textfeld. – Babiker

Antwort

18

Verwenden Sie die nextAll() Methode:

$("#foo").nextAll("textarea").first(); 

Oder:

$("#foo").nextAll("textarea:first"); 

Oder auch:

$("#foo").nextAll("textarea:eq(0)"); 
+7

+1. Ich denke, '.nextAll (" textarea: first ")' wird es aufhören zu suchen, nur nach dem ersten Textarea findet es, aber, kleine Optimierung sowieso. –

+0

+1 vereinbart, viel besser als meine Lösung, nette! – jyoseph

+0

@ Box9, du hast Recht, ich habe andere Möglichkeiten, um das gleiche zu tun. Danke :) –

1

Check out siblings()

$('#foo').siblings('textarea:first').addClass('found'); 

jsbin demo here

+0

Das hat auch funktioniert, ohne die Klasse hinzuzufügen. – Babiker

+0

Cool! Ich tat das nur für den Effekt :-) – jyoseph

+0

Ich habe abgestimmt :), wissen Sie übrigens, was der Unterschied von nextAll ist? – Babiker

Verwandte Themen