Merci Kip, pour ceux qui peuvent chercher à obtenir les mêmes en utilisant $ (ce) tout en réitérant ou l'association au sein d'une fonction:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Je regardais pendant un certain temps tout en travaillant ce projet, mais n'a pas pu trouver un bon exemple donc j'espère que cela aide les autres qui pourraient chercher à résoudre le même problème.
Dans l'exemple ci-dessus, mon objectif était de cacher les entrées radio et le style des étiquettes pour offrir une expérience utilisateur Slicker (changer l'orientation de l'organigramme).
Vous pouvez voir un exemple ici
Si vous aimez l'exemple, voici le 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;}
et la partie pertinente du JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Une racine alternative à la question initiale, compte tenu de l'étiquette suit l'entrée, vous pouvez aller avec une solution pure css et évitez d'utiliser tout à fait ... JavaScript:
input[type=checkbox]:checked+label {}