jQuery:多个复选框,获取唯一选中框的值

jQuery:多个复选框,获取唯一选中框的值,jquery,checkbox,Jquery,Checkbox,我有一个脚本,当选中一个复选框时显示一个值,当选中多个复选框时不显示任何值 这在一定程度上起了作用。 如果我选中一个复选框,我将获得与其最近的class=list关联的值,如果我单击第二个复选框,我将一无所获,这是正确的 但是,当我取消选中第二个复选框时,警报将显示它的值,而不是最后剩余复选框的值 那么,如何获取“仅选中”复选框的值呢 这是复选框的布局,它是最近的类列表 <tr> <td>1</td><td><input type='chec

我有一个脚本,当选中一个复选框时显示一个值,当选中多个复选框时不显示任何值

这在一定程度上起了作用。 如果我选中一个复选框,我将获得与其最近的
class=list
关联的值,如果我单击第二个复选框,我将一无所获,这是正确的

但是,当我取消选中第二个复选框时,警报将显示它的值,而不是最后剩余复选框的值

那么,如何获取“仅选中”复选框的值呢

这是复选框的布局,它是最近的
类列表

<tr>
<td>1</td><td><input type='checkbox' name='id[0]' id='0'/></td>
<td class='list'><span>1234</span></td>
<td><span></span></td>
</tr>
下面是一个JSFIDLE,显示了这个问题: 如果选中选项1,警报将显示1234

如果选中选项3,则不会显示任何内容(这是正确的)。如果取消选中任一选项,则会看到它的值,而不是剩余选中项的值。例如:

取消选中3我得到3456,而不是1234(1仍处于选中状态)

有没有办法解决这个问题


谢谢

您需要以这种方式分配
txt
变量(查找最接近选中复选框的行,而不是已更改的行):


更改时,您将从已触发的复选框中捕获文本,而不是从已选中的复选框中捕获文本

$(“:复选框:选中”).closest(“tr”).find(“.list”).text()


如果您使用
遍历DOM,您将获得更改复选框的值。您需要使用复选框遍历DOM。为此,可以缓存选定的复选框并使用它遍历DOM

$(document).ready(function () {
    var count;
    $(':checkbox').change(function() {
        var $checkboxes = $('input[type="checkbox"]:checked');
        count = ( $checkboxes.length ) ;

        if (count == "1" ) {
            var txt = $checkboxes.closest('tr').find('.list').text();
            alert (txt)
        } 
    });
});  

当然,如果您使用
这个
遍历DOM,您将获得更改复选框的值。您需要通过复选框遍历DOM:@Karl AndréGagnon感谢您的快速回复。如果你把这个作为答案贴出来,我会接受的。
txt = $('input[type="checkbox"]:checked').closest('tr').find('.list').text();
$(document).ready(function () {
    var count;
    $(':checkbox').change(function() {
        var $checkboxes = $('input[type="checkbox"]:checked');
        count = ( $checkboxes.length ) ;

        if (count == "1" ) {
            var txt = $checkboxes.closest('tr').find('.list').text();
            alert (txt)
        } 
    });
});