2010-12-10 20 views
7

¿Cómo seleccionar un nodo después de $(this) que coincida con un cierto selector?¿Cómo usar jQuery para seleccionar los primeros siguientes elementos que coinciden con un determinado selector?

por ejemplo:

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

Con cabo seleccionando directamente a través de #bar $ ("# bar"), ¿Cómo puedo seleccionarlo desde dentro #foo?

+0

¿Cuál es la regla/selector con el que intenta hacer coincidir? textarea? –

+0

@Paul Schreiber: el primer texto siguiente. – Babiker

Respuesta

18

uso del método nextAll():

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

O:

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

O incluso:

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

+1. Creo que '.nextAll (" textarea: first ")' permitirá que deje de buscar justo después del primer textarea que encuentre, pero de todos modos, la optimización es pequeña. –

+0

+1 de acuerdo, mucho mejor que mi solución, ¡lindo! – jyoseph

+0

@ box9, tienes razón, agregué otras formas de hacer lo mismo. Gracias :) –

1

Salida siblings()

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

jsbin demo here

+0

Esto funcionó también, sin agregar la clase. – Babiker

+0

¡Genial! Acabo de hacer eso por efecto :-) – jyoseph

+0

He votado :), ¿por casualidad sabes cuál es la diferencia de nextAll? – Babiker

Cuestiones relacionadas