<input type="checkbox" name="filter" id="comedyclubs"/>
<label for="comedyclubs">Comedy Clubs</label>
それを説明するラベルが付いたチェックボックスがある場合、jQueryを使用してラベルを選択するにはどうすればよいですか?ラベルタグにIDを付けて、それを使用して選択する方が簡単でしょう$(#labelId)
か?
<input type="checkbox" name="filter" id="comedyclubs"/>
<label for="comedyclubs">Comedy Clubs</label>
それを説明するラベルが付いたチェックボックスがある場合、jQueryを使用してラベルを選択するにはどうすればよいですか?ラベルタグにIDを付けて、それを使用して選択する方が簡単でしょう$(#labelId)
か?
$("label[for='"+$(this).attr("id")+"']");
これにより、ループ内のすべてのフィールドのラベルも選択できるようになります。確認する必要があるのは、このラベルが定義されているフィールドのIDがfor='FIELD'
どこにあるかをラベルに指定することだけです。FIELD
これはそれを行う必要があります:
$("label[for=comedyclubs]")
IDに英数字以外の文字が含まれている場合は、attr値を引用符で囲む必要があります。
$("label[for='comedy-clubs']")
別の解決策は次のとおりです。
$("#comedyclubs").next()
Kipに感謝します。関数内で反復または関連付けを行いながら、$(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 {}