如果#id
位于数组中,我正在尝试勾选一个复选框。
这是我到目前为止所拥有的:
<tr>
<td colspan="2">
<input type="checkbox" name="chkGroup" id="1" value="1"/>
Administrator
</td>
</tr>
<tr>
<td colspan="2">
<input type="checkbox" name="chkGroup" id="2" value="2"/>
Responder
</td>
</tr>
<tr>
<td colspan="2">
<input type="checkbox" name="chkGroup" id="3" value="3"/>
Specialist
</td>
</tr>
var arr = [ 1, 3 ];
var arrGroup = jQuery.makeArray( arr );
$('input[name=chkGroup]').each(function (index, value) {
if(jQuery.inArray($(value).attr('id'), arrGroup) !== -1) {
$(value).prop('checked', true);
}
else {
alert($(value).attr('id'));
}
});
它不会打勾。它只击中了其他人。有什么想法吗?
答案 0 :(得分:3)
喜欢这个
var arr = ["c1", "c3" ];
$.each(arr,function (index, value) {
$("#"+value).prop('checked', true);
});
答案 1 :(得分:1)
或者你可以试试这个
var arr = [ 1, 3 ];
$("#"+arr.join(",#")).prop("checked", true);
答案 2 :(得分:0)
jQuery的inArray
使用严格的相等性检查(===
)。返回的ID值是一个字符串;而你正在寻找它的数值。
使用parseInt
(和value.id
;仅使用jQuery来获取ID属性:
if(jQuery.inArray(parseInt(value.id, 10), arrGroup) !== -1)
<强> jsFiddle here. 强>
请注意,使用数字ID并不是一个好主意;虽然在HTML5中有效,但它们在CSS中无效并且可能会导致其他问题。