2011-09-18 3 views
31

Puoi aiutarmi con questo selettore jQuery?Come seleziono un elemento di pari livello 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')); 
    } 
}); 

Fondamentalmente, voglio selezionare l'elemento con classe .bidbutton che appartiene lo stesso genitore come il .countdown in ogni ciclo:

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

E poi applicare questo a quel tasto:

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

risposta

65

utilizzare jQuery .siblings() per selezionare il fratello di corrispondenza.

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

'Siblings()' restituisce un array di * tutti * degli elementi che corrispondono a detto selettore. – LukeP

0

Dal $(this) si riferisce a .countdown è possibile utilizzare $(this).next() o $(this).next('button') più specificamente.

+0

E se non fosse proprio accanto a lui? cosa succede se è dietro di lui? Usa la soluzione più generale dei fratelli. –

+2

Incredibilmente, è nel suo DOM fornito e non c'è motivo di attraversare TUTTI i fratelli se non è necessario. – AlienWebguy

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

Try -

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

jQuery fornisce un metodo chiamato "siblings()" che aiuta a restituire tutti gli elementi di pari livello dell'elemento selezionato. Ad esempio, se si desidera applicare CSS ai selettori di pari livello, è possibile utilizzare questo metodo. Di seguito è riportato un esempio che illustra questo. Puoi provare questo esempio e giocare con esso per imparare come funziona.

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

0

Se si desidera selezionare un fratello specifica:

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

dove 'index' è l'indice del fratello specifica all'interno del contenitore principale.