回答:
これはそれを行うはずです:
$("label[for=comedyclubs]")
idに英数字以外の文字が含まれている場合は、attr値を引用符で囲む必要があります。
$("label[for='comedy-clubs']")
別の解決策は次のとおりです。
$("#comedyclubs").next()
$("#comedyclubs").nextAll().first()
関数内で反復または関連付けを行いながら$(this)を使用して同じことを実現しようとしている可能性のある人には、Kipに感謝します。
$("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
いるすべてのラベルにアクセスできます。