Gracias Kip, para aquellos que estén buscando lograr lo mismo usando $ (this) mientras iteran o se asocian dentro de una función:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Busqué durante un tiempo mientras trabajaba en este proyecto, pero no pude encontrar un buen ejemplo, así que espero que esto ayude a otros que pueden estar buscando resolver el mismo problema.
En el ejemplo anterior, mi objetivo era ocultar las entradas de radio y diseñar las etiquetas para proporcionar una experiencia de usuario más elegante (cambiando la orientación del diagrama de flujo).
Puedes ver un ejemplo aquí
Si te gusta el ejemplo, aquí está el 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;}
y la parte relevante del JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Una raíz alternativa a la pregunta original, dada la etiqueta que sigue a la entrada, podría optar por una solución css pura y evitar el uso de JavaScript por completo ...:
input[type=checkbox]:checked+label {}
$('#comedyclubs')[0].labels
para acceder a todas las etiquetas asignadas#comedyclubs
.