我有一个Jquery事件,它将收集所选复选框的列表,我正在尝试通过尝试逐个访问它们来尝试他们的行为。
$('#sub').click(function () {
var cb = $("input[type='checkbox']:checked");
var count = cb.length;
alert(cb[0].prop('checked'));
if (count == 0) {
alert('No subjects selected');
return false;
} else {
return confirm(count + " row(s) selected, proceed?");
}
});
由于某种原因,访问cb
直接赢了。
我需要做这样的事情:
cb.each(function (i) {
alert($(this).prop('checked'));
});
但是当我只需要数组的第一个元素时,这将要求我遍历所有这些元素,看看它是否真实。
有没有方法,有人可以告诉我为什么我的第一种方法不起作用?我尝试使用for loop
,但没有运气。
答案 0 :(得分:1)
答案 1 :(得分:1)
您要做的是检查是否至少选择了一个项目,因为cb
只检查了项目,您可以检查该项目是否至少包含一个项目,如
$('#sub').click(function () {
var cb = $("input[type='checkbox']:checked");
if (!cb.length) {
alert('No subjects selected');
return false;
} else {
return confirm(count + " row(s) selected, proceed?");
}
答案 2 :(得分:1)
此:
var cb = $("input[type='checkbox']:checked");
不返回单个元素,它可能会返回许多元素。
这将定位第一个选中的复选框:
var cb = $("input[type='checkbox']:checked:first");
无论状态如何,这都将锁定第一个复选框:
var cb = $("input[type='checkbox']:first");