34

我想获得具有特定值的复选框并使其选中..

我这样做

$(":checkbox").filter({"value":5}).attr("checked","true");​

这是html

​<input type="checkbox" name="priv"​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ value="1"​​​​​​​​​​​​​​​​​/>
<input type="checkbox" name="priv" value="2"/>
<input type="checkbox" name="priv" value="3"/>
<input type="checkbox" name="priv" value="4"/>
<input type="checkbox" name="priv" value="5"/>
<input type="checkbox" name="priv" value="6"/>
<input type="checkbox" name="priv" value="7"/>
 <input type="checkbox" name="priv" value="8"/>​

这是问题的演示

4

8 回答 8

103

您可以使用属性等于选择器 [name="value"]来获取具有特定值的复选框。也使用prop()而不是attr()作为jQuery doc推荐的方式。

现场演示

$(":checkbox[value=4]").prop("checked","true");

或者

$("input[type=checkbox][value=5]").prop("checked",true);

描述:选择具有指定属性的元素,该属性的值与某个值完全相同,jQuery doc

您也可以使用 attr() 但 prop 更适合布尔属性。

$(":checkbox[value=4]").attr("checked","true");

从 jQuery 1.6 开始,.attr() 方法为尚未设置的属性返回 undefined。要检索和更改 DOM 属性,例如表单元素的选中、选择或禁用状态,请使用 .prop() 方法,jQuery doc

编辑,在评论中询问,“具有复杂值的答案/查找表达式看起来如何,例如 value="Smith, David "

您可以用单引号将Smith、David等值括起来。您甚至可以使用 jQuery 使用的字符,例如 #、.、$ 等,请参阅此处更新的小提琴。

$("input[type=checkbox][value='#Smith, David$']").attr("checked","true");
于 2012-06-07T10:32:45.940 回答
11
$(":checkbox").filter(function() {
  return this.value == '5';
}).prop("checked","true");​

演示

如果您想将其用于不同的值,请使其通用,如下所示:

function checkWithValue(val) {
    $(":checkbox").filter(function() {
        return this.value == val;
    }).prop("checked", "true");
}


checkWithValue(5);​

演示

于 2012-06-07T10:43:12.787 回答
4
$("input:checkbox[value='5']").attr("checked","true")
于 2012-06-07T10:42:29.230 回答
2

我有一个需要循环的动态值。这对我有用:

for (var i = 0, len = value.length; i < len; i++) {
  $("#form-name").find("input[type=checkbox][name='fName']").filter(function () {
    return this.value == values[i];
  }).prop("checked", true);
}

希望能帮助别人。

于 2016-07-23T19:33:45.200 回答
1

它也适用于方形练习

 $(":checkbox").filter(["value":5]).prop("checked","true");
于 2012-06-07T10:43:47.860 回答
1

Sometimes we want to get checkbox dynamically for a specific value.

$(document).on('click','.at-filter a', function(){
    var aaa = $(this).parent().find("em").html();
    $("input[type=checkbox][value='"+aaa+"']").prop('checked',false)
});
于 2018-08-01T13:25:25.387 回答
0
$(":checkbox[value=5]").attr("checked",true);​​​
于 2012-06-07T10:33:45.303 回答
0
$("#catalogTBL").find("input[type=checkbox][value='snet']").prop("checked", true);

这是我可以让它工作的唯一方法。在表格中寻找复选框。

于 2015-04-08T21:29:07.683 回答