Благодаря Кипы, для тех, кто может быть ищут для достижения того же с помощью $ (это) в то время как итерация или ассоциирования в функции:
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
Я посмотрел на некоторое время, работая этот проект, но не мог найти хороший пример, так что я надеюсь, что это помогает другим, кто может быть ищут, чтобы решить ту же проблему.
В приведенном выше примере, моя цель была, чтобы скрыть входы радио и стиль этикетки, чтобы обеспечить дождевик пользовательского опыта (изменение ориентации блока-схемы).
Вы можете увидеть пример здесь
Если вам нравится пример, вот 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;}
и соответствующая часть JavaScript:
function changeHandler() {
$(".orienSel").removeClass( "orienSel" );
if(this.checked) {
$("label[for="+$(this).attr("id")+"]").addClass( "orienSel" );
}
};
Альтернативный корень к первоначальному вопросу, учитывая этикетку следует входу, вы могли бы пойти с чистым раствором CSS и избегать использования JavaScript вообще ...:
input[type=checkbox]:checked+label {}