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 {}