답변:
이것은해야합니다 :
$("label[for=comedyclubs]")
아이디에 영숫자가 아닌 문자가 있으면 attr 값을 따옴표로 묶어야합니다.
$("label[for='comedy-clubs']")
다른 해결책은 다음과 같습니다.
$("#comedyclubs").next()
$("#comedyclubs").nextAll().first()
함수 내에서 반복하거나 연관시키는 동안 $ (this)을 사용하여 동일한 결과를 얻으려는 사람들에게 감사합니다.
$("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 {}
$('#comedyclubs')[0].labels
지정된 모든 레이블에 액세스 할 수 있습니다#comedyclubs
.