如何访问复选框数组的第一个元素而不使用每个元素

How to access the first element of the checkbox array without using each?

本文关键字:元素 第一个 何访问 访问 数组 复选框      更新时间:2023-09-26

我有一个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,但没有运气

你要做的是检查是否至少有一个项目被选中,因为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?");
    }

您可以使用 eq()

alert(cb.eq(0).prop('checked'));

cb[0]将返回dom对象

alert(cb[0].checked);

Ref: https://learn.jquery.com/using-jquery-core/faq/how-do-i-pull-a-native-dom-element-from-a-jquery-object/

This:

var cb = $("input[type='checkbox']:checked");

不返回单个元素,它可能返回多个元素。

这将针对第一个选中的复选框:

var cb = $("input[type='checkbox']:checked:first");

无论状态如何,这将针对第一个复选框:

var cb = $("input[type='checkbox']:first");