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 poteva trova un buon esempio quindi spero che questo aiuti gli altri che potrebbero cercare di risolvere lo stesso problema.
Nell'esempio sopra, il mio obiettivo era nascondere gli input radio e assegnare uno stile alle etichette per fornire un'esperienza utente più sfaccettata (cambiando l'orientamento del diagramma di flusso).
Puoi see an example here
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 all'originale domanda, data l'etichetta segue l'input, si potrebbe andare con una soluzione di css puro ed evitare l'utilizzo di JavaScript del tutto ...:
input[type=checkbox]:checked+label {}
fonte
2017-03-05 09:50:24
Per i browser Webkit (Safari/Chrome), è possibile fare '$ ('# comedyclubs) [0] .labels' per accedere a tutte le etichette assegnate a' # comedyclubs'. – Matt
Usa .text() per convertire oggetto in stringa: avviso ($ ("label [for = 'comedyclubs']"). Text()); – Loren
semplicemente usando $ ("label [for = 'comedyclubs']") otterrà il valore ma renderà l'etichetta vuota. quindi, usa $ ("label [for = 'comedyclubs']"). text() – shahil