selettore jQuery per l'etichetta di una casella di controllo

voti
214
<input type=checkbox name=filter id=comedyclubs/>
<label for=comedyclubs>Comedy Clubs</label>

Se ho una casella di controllo con un'etichetta che descrive è, come posso selezionare l'etichetta utilizzando jQuery? Sarebbe più facile dare il tag label un ID e selezionare che l'uso $(#labelId)?

È pubblicato 27/07/2009 alle 05:21
fonte dall'utente
In altre lingue...                            


5 risposte

voti
390

Questo dovrebbe funzionare:

$("label[for='comedyclubs']")

Vedi anche: I selettori / attributeEquals - jQuery JavaScript Library

Risposto il 27/07/2009 a 05:23
fonte dall'utente

voti
41

Questo dovrebbe farlo:

$("label[for=comedyclubs]")

Se si dispone di caratteri non alfanumerici nel vostro id allora è necessario circondare il valore attr con le citazioni:

$("label[for='comedy-clubs']")
Risposto il 27/07/2009 a 05:23
fonte dall'utente

voti
5

Un'altra soluzione potrebbe essere:

$("#comedyclubs").next()
Risposto il 02/02/2011 a 11:23
fonte dall'utente

voti
63
$("label[for='"+$(this).attr("id")+"']");

Questo dovrebbe consentire di selezionare le etichette per tutti i campi in un ciclo pure. Tutto ciò che serve per garantire sia le etichette dovrebbero dire for='FIELD'dove FIELDè l'id del settore per il quale si sta definendo questa etichetta.

Risposto il 03/08/2012 a 08:08
fonte dall'utente

voti
0

Grazie Kip, per coloro che possono essere alla ricerca per ottenere gli stessi utilizzando $ (this), mentre l'iterazione o associando all'interno di una funzione:

$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );

Ho guardato per un po 'mentre si lavora questo progetto, ma non sono riuscito a trovare un buon esempio quindi spero che questo aiuta gli altri che possono essere alla ricerca per risolvere lo stesso problema.

Nell'esempio di cui sopra, il mio obiettivo era quello di nascondere i ingressi radiofonici e lo stile delle etichette per fornire un'esperienza utente lisciante (cambiando l'orientamento del diagramma di flusso).

È possibile vedere un esempio qui

Se vi piace l'esempio, ecco il css:

.orientation {      position: absolute; top: -9999px;   left: -9999px;}
    .orienlabel{background:#1a97d4 url('http://www.ifreight.solutions/process.html/images/icons/flowChart.png') no-repeat 2px 5px; background-size: 40px auto;color:#fff; width:50px;height:50px;display:inline-block; border-radius:50%;color:transparent;cursor:pointer;}
    .orR{   background-position: 9px -57px;}
    .orT{   background-position: 2px -120px;}
    .orB{   background-position: 6px -177px;}

    .orienSel {background-color:#323232;}

e la parte rilevante del JavaScript:

function changeHandler() {
    $(".orienSel").removeClass( "orienSel" );
    if(this.checked) {
        $("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
    }
};

Una root alternativa alla domanda iniziale, data l'etichetta segue l'ingresso, si potrebbe andare con una soluzione css pura ed evitare di usare JavaScript del tutto ...:

input[type=checkbox]:checked+label {}
Risposto il 05/03/2017 a 09:50
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more