用于复选框标签的jQuery选择器

Dar*_*wyn 232 checkbox jquery jquery-selectors

<input type="checkbox" name="filter" id="comedyclubs"/>
<label for="comedyclubs">Comedy Clubs</label>
Run Code Online (Sandbox Code Playgroud)

如果我有一个带有描述它的标签的复选框,我如何使用jQuery选择标签?是否更容易为标签标签提供ID并选择使用$(#labelId)

Kip*_*Kip 425

这应该工作:

$("label[for='comedyclubs']")
Run Code Online (Sandbox Code Playgroud)

另请参见:Selectors/attributeEquals - jQuery JavaScript Library

  • 对于Webkit浏览器(Safari/Chrome),您可以使用`$('#comedyclubs')[0] .labels`来访问分配给`#comedyclubs`的所有标签. (3认同)

Han*_*nky 68

$("label[for='"+$(this).attr("id")+"']");
Run Code Online (Sandbox Code Playgroud)

这应该允许您为循环中的所有字段选择标签.您需要确保的是标签应该说明定义此标签的字段的ID for='FIELD'在哪里FIELD.

  • 对于拥有多个领域的人来说,这是一个很好的答案.这个答案应该是#1. (5认同)

Dar*_*o Z 44

这应该这样做:

$("label[for=comedyclubs]")
Run Code Online (Sandbox Code Playgroud)

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

$("label[for='comedy-clubs']")
Run Code Online (Sandbox Code Playgroud)

  • 当这个答案与领先答案同时提交时,声誉如何.:) (2认同)

Bri*_*nti 5

另一个解决方案是:

$("#comedyclubs").next()
Run Code Online (Sandbox Code Playgroud)

  • 这可能不是最稳定的解决方案,因为它要求标签始终是复选框后面的下一个项目.图形重新设计可能会打破这种逻辑. (12认同)
  • 对!但在这种情况下工作正常:D和litle更安全的版本我们可以定义.next('label')或.prev('label'). (3认同)