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 {}