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);
}