jQueryselect器的checkbox的标签

<input type="checkbox" name="filter" id="comedyclubs"/> <label for="comedyclubs">Comedy Clubs</label> 

如果我有一个标签描述的checkbox,我怎样才能使用jQueryselect标签? 给标签标签一个ID并select使用$(#labelId)会更容易吗?

这应该工作:

 $("label[for='comedyclubs']") 

另请参阅: select器/ attributeEquals – jQuery JavaScript库

 $("label[for='"+$(this).attr("id")+"']"); 

这应该允许您为循环中的所有字段select标签。 所有你需要确保的是你的标签应该说for='FIELD' ,其中FIELD是这个标签被定义的字段的id。

这应该做到这一点:

 $("label[for=comedyclubs]") 

如果您的ID中包含非字母数字字符,则必须用引号括住attr值:

 $("label[for='comedy-clubs']") 

另一个解决scheme可能是

 $("#comedyclubs").next() 

感谢Kip,对于那些可能正在使用$(this)来实现同样function的人来说,在函数内迭代或关联:

 $("label[for="+$(this).attr("id")+"]").addClass( "orienSel" ); 

我在这个项目上工作了一段时间,但是找不到一个好的例子,所以我希望这能帮助那些可能想要解决同样问题的人。

在上面的示例中,我的目标是隐藏无线电input并为标签设置风格,以提供更加stream畅的用户体验(更改stream程图的方向)。

你可以在这里看到一个例子

如果你喜欢这个例子,这里是CSS:

 .orientation { position: absolute; top: -9999px; left: -9999px;} .orienlabel{background:#1a97d4 url('http://www.ifreight.solutions/process.htmlhttp://img.dovov.comicons/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" ); } }; 

原来的问题的另一个根源,如果标签遵循input,你可以用一个纯CSS的解决scheme,并避免使用JavaScript …:

 input[type=checkbox]:checked+label {}