Obrigado Kip, por aqueles que desejam obter o mesmo usando $ (this) enquanto iteram ou se associam a uma função:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Procurei um tempo enquanto trabalhava neste projeto, mas não consegui encontrar um bom exemplo. Espero que isso ajude outras pessoas que estejam procurando resolver o mesmo problema.
No exemplo acima, meu objetivo era ocultar as entradas de rádio e estilizar as etiquetas para fornecer uma experiência mais suave ao usuário (alterando a orientação do fluxograma).
Você pode ver um exemplo aqui
Se você gosta do exemplo, aqui está o 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 a parte relevante do JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Uma raiz alternativa à pergunta original, dado que o rótulo segue a entrada, você pode optar por uma solução css pura e evitar usar o JavaScript completamente ...:
input[type=checkbox]:checked+label {}
$('#comedyclubs')[0].labels
acessar todos os marcadores atribuídos#comedyclubs
.