Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选中复选框标签的Jquery选择器_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 选中复选框标签的Jquery选择器

Javascript 选中复选框标签的Jquery选择器,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我们可以选择选中的复选框(在jQuery中),如下所示: jQuery(:checked) 但是我们如何在jQuery中选择选中复选框的标签呢?复选框不带文本(在asp.net中,它有带文本) 复选框文本是标签元素。只需使用的数学搜索属性: 在html中,它看起来像: <input type="checkbox" name="chk" /> <label for="chk">Checkbox 1</label> 这将返回所有复选框标签。标签不需要是复选框附

我们可以选择选中的复选框(在jQuery中),如下所示:

jQuery(:checked)

但是我们如何在jQuery中选择选中复选框的标签呢?

复选框不带文本(在asp.net中,它有带文本)


复选框文本是
标签
元素。只需使用
的数学搜索
属性:

在html中,它看起来像:

<input type="checkbox" name="chk" />
<label for="chk">Checkbox 1</label>

这将返回所有复选框标签。标签不需要是复选框附近的下一个或上一个元素。

假设您有此html

<label>Label</label>
<input type="checkbox" checked="checked"> test </input>
<label>Label 2</label>
<input type="checkbox" > test 2 </input>
<label>Label 3</label>
<input type="checkbox" > test 3</input>
*如果html中复选框后面有标签,请使用
.next


*使用
.parent
如果将复选框包装在label元素中

除非标签的for属性指向复选框,或者将复选框包装在标签中,在这种情况下,您只需查找父标签,而不是ASP.NET的
checkbox
控件,只需生成一个不带文本的HTML复选框,然后是文本?@BoltClock这是我写的。在asp.net中,它会做它的cmakes复选框,然后是一个带有
for
的标签,这非常有效!不过,在我的例子中,我的复选框列表是绑定的,我必须使用“label”而不是“span”。或者干脆使用
closest()
。。。(用标签包装输入无效)您是对的,无效,但。。。它发生了!
.closest()
仅当标签是复选框的祖先时才会选择该标签(从jQuery in Action:返回一个包含与传递的表达式匹配的单个最近祖先的包装集,如果有的话),for属性也可以指向ID。。。您可以使用')$(this.attr('name')| |$(this.attr('id')')作为参数
jQuery('input[type=checkbox]:checked').map(function() {
    return $('label[for=' + $(this).attr('name') + ']');
});
<label>Label</label>
<input type="checkbox" checked="checked"> test </input>
<label>Label 2</label>
<input type="checkbox" > test 2 </input>
<label>Label 3</label>
<input type="checkbox" > test 3</input>
$("input:checked").prev('label');