2011-09-18 15 views
31

¿Me pueden ayudar con este selector jQuery?¿Cómo selecciono un elemento hermano usando jQuery?

$(".auctiondiv .auctiondivleftcontainer .countdown").each(function() { 
    var newValue = parseInt($(this).text(), 10) - 1; 
    $(this).text(newValue); 

    if (newValue == 0) { 
     $(this).parent().fadeOut(); 
     chat.verify($(this).parent().parent().attr('id')); 
    } 
}); 

Básicamente, quiero seleccionar el elemento con la clase .bidbutton que pertenece en el mismo padre que el .countdown en el cada bucle:

<div class="auctiondivleftcontainer"> 
    <p class="countdown">0</p> 
    <button class="btn primary bidbutton">Lance</button>        
</div> 

Y luego aplicar esto a ese botón:

$(button here).addClass("disabled"); 
$(button here).attr("disabled", ""); 

Respuesta

65

Uso jQuery .siblings() para seleccionar el hermano a juego.

$(this).siblings('.bidbutton'); 
+2

'Hermanos()' devuelve una matriz de * todos * los elementos que coinciden con dicho selector. – LukeP

0

Desde $(this) se refiere a .countdown puede utilizar $(this).next() o $(this).next('button') más específicamente.

+0

¿Y si no está junto a él? ¿y si está detrás de él? Usa la solución más general para hermanos. –

+2

Sorprendentemente, ES en su DOM proporcionado y no hay ninguna razón para atravesar TODOS los hermanos si no es necesario. – AlienWebguy

4
$(this).siblings(".bidbutton") 
0

Try -

$(this).siblings(".bidbutton").addClass("disabled").attr("disabled", ""); 
1

jQuery proporciona un método llamado "siblings()" que nos ayuda a devolver todos los elementos de hermanos del elemento seleccionado. Por ejemplo, si desea aplicar CSS a los selectores de hermanos, puede usar este método. A continuación se muestra un ejemplo que ilustra esto. Puedes probar este ejemplo y jugar con él para aprender cómo funciona.

$("p").siblings("h4").css({"color": "red", "border": "2px solid red"});

0

Si desea seleccionar un hermano específica:

var $sibling = $(this).siblings('.bidbutton')[index]; 

donde 'índice' es el índice del hermano específica dentro del contenedor principal.

Cuestiones relacionadas