prev neighbor first child jquery traversal

jquery - neighbor - Encuentra el siguiente elemento que no es inmediato?



jquery prev (6)

Quiero encontrar el primer elemento de tramo después del contador de clase, en un código como este:

<div class="counter"></div> <p></p> <span></span>

Parece que la función next () solo encuentra el siguiente elemento inmediato, así que algo como esto:

$(".counter").next("span")

No funcionará La forma en que he estado usando es un poco larga y me preguntaba si había un camino más corto, es este:

$(".counter").nextAll("span").eq(0)

Creo que el método closest() en jQuery 3 hará el truco, pero estoy usando 1.2.6 - ¿hay una mejor manera de hacerlo (estoy usando el next() incorrecto?)


Creo que la función siblings() es lo que estás buscando. Pruebe algo como esto:

$(".counter").siblings("span");


No estoy seguro de que el método más cercano sea el truco, pero si es así ... ¿tal vez puedas extraer el método más cercano de 1.3 y convertirlo en un complemento?

No he tenido la oportunidad de probar esto, pero intentarlo. No puede doler:

(function($) { $.fn.closest = function (selector) { return this.map(function(){ var cur = this; while ( cur && cur.ownerDocument ) { if ( $(cur).is(selector) ) return cur; cur = cur.parentNode; } }); } })(jQuery);


Pruebe algo como esto:

$(".counter ~ span:first");

¡Espero que ayude!


$ ("contador + lapso")


Similar a la respuesta marcada, pero parece un poco más limpia con el primer selector:

$(''.counter'').nextAll(''span:first'')


Creo que tu método es la mejor manera. Y si sientes que no se ve bien, simplemente conviértelo en un complemento:

jQuery.fn.firstAfter = function(filter){ return this.nextAll(filter).eq(0); }