选中/取消选中jQuery复选框

时间:2014-06-12 13:07:51

标签: javascript jquery

我有一种情况,我在JavaScript中得到以下内容:

$('<input type="checkbox" name="checkbox1" value="12345">').prop('checked',true);

上面没有勾选复选框。还尝试过:

$('<input type="checkbox" name="checkbox1" value="12345">').attr('checked','checked');

当我这样做时,我得到了值:

$('<input type="checkbox" name="checkbox1" value="12345">').val();

以下内容包含在数组中:

<input type="checkbox" name="checkbox1" value="12345">

所以我通常称之为:

$(data[0]).val();

为什么不使用prop或attr工作来检查/取消选中?

5 个答案:

答案 0 :(得分:1)

选中复选框。

var elem = $('<input type="checkbox" name="checkbox1" value="12345">').prop('checked',true);
console.log(elem.prop("checked"));  //true
console.log(elem[0]);   //<input type="checkbox" name="checkbox1" value="12345">

在检查属性时,DOM不会将属性神奇地添加为属性。如果要更新HTML,则必须添加属性

var elem = $('<input type="checkbox" name="checkbox1" value="54321">').attr("checked","checked");
console.log(elem.prop("checked"));  //true
console.log(elem[0]);  //<input type="checkbox" name="checkbox1" value="12345" checked="checked">

JSFiddle

答案 1 :(得分:0)

$('#IDOFCHECKBOX').prop('checked',true);

check this for .prop()

check this for id selector

按名称选择,您可以使用

$('input[type=checkbox][name="checkbox1"]').prop('checked', true)

答案 2 :(得分:0)

肯定是在 jQuery 1.6 +

使用新的.prop()函数:

$(&#39; .myCheckbox&#39;)。prop(&#39; checked&#39;,true); $(&#39; .myCheckbox&#39;)。prop(&#39;已检查&#39;,false);

jQuery 1.5 及以下

.prop()函数不可用,因此您需要使用.attr()。

要选中复选框(通过设置checked属性的值),请执行

$(&#39; .myCheckbox&#39;)ATTR(&#39;检查&#39;&#39;检查&#39);

并取消检查(完全删除属性)

$(&#39; .myCheckbox&#39)。removeAttr(&#39;检查&#39);

任何版本的jQuery

如果你只使用一个元素,那么使用DOMElement.checked = true总是最快的。使用.prop()和.attr()函数的好处是它们可以对所有匹配的元素进行操作。

//假设一个复选框上有一个事件处理程序 if(this.checked)

答案 3 :(得分:-1)

您应该使用正确的jQuery选择器,例如:

$('#checkboxId').prop('checked',true);

这是现有选择器的列表:

http://api.jquery.com/category/selectors/

大多数CSS选择器都可以使用,例如:

  • .class选择课程
  • #id由Ids选择
  • >选择直接儿童
  • [attr=value]按属性值选择

答案 4 :(得分:-2)

其中任何一个都可以勾选你的复选框

$('#chk1').prop('checked','checked')

$('#chk1').prop('checked',true)