JQuery 仅将选中的行添加到数组

Posted

技术标签:

【中文标题】JQuery 仅将选中的行添加到数组【英文标题】:JQuery To Only Add Checked Rows To Array 【发布时间】:2018-06-24 08:11:48 【问题描述】:

我正在尝试仅将已检查的asp:gridviews 添加到我的 JQuery 数组中。我的问题是,无论检查状态如何,都会添加所有行。

只将选中的行添加到此数组的正确方法是什么:

<script>
    $("#btnTest").click(function () 
        var AjaxData = ;
        var AjaxDataList = [];
        var grids = ["gridGreen", "GridRed""];
        var gridlen = grids.length;
        var i;
        for (i = 0; i < gridlen; i++) 
            $('[id*=' + grids[i] + ']').find('tr:has(td)').each(function () 
        var gridrow = $(this);
        var colno = 2;
            $('#checkboxtest input[type=checkbox]').each(function () 
                if ($(this).prop('checked')) 
                    AjaxData.fldPresenting = gridrow.find("td:nth-child(" + colno + ")").html();
                
            
        );
        AjaxDataList.push(AjaxData);
        Console.Log(AjaxDataList);
        
    );
</script>

【问题讨论】:

【参考方案1】:

您应该在checked 条件内填充数组。

$("#btnTest").click(function () 
    //var AjaxData = ;
    var AjaxDataList = [];
    var grids = ["gridGreen", "GridRed"];
    var gridlen = grids.length;
    var i;
    for (i = 0; i < gridlen; i++) 
        $('[id*=' + grids[i] + ']').find('tr:has(td)').each(function () 
        $('#checkboxtest input[type=checkbox]').each(function () 
            if ($(this).is(':checked')) 
                //AjaxData.fldPresenting = gridrow.find("td:nth-child(" + colno + ")").html();
                AjaxDataList.push($(this).attr("id"));//Push the checked checkbox
            
        
    );
    Console.Log(AjaxDataList);
    
);

另外,我无法理解 AjaxData 的用途,并且在您的代码 sn-p 中没有声明 gridrowcolno 变量。

【讨论】:

在另一个循环中循环所有复选框没有意义 我没有在 for 循环中填充数组吗?如果我查看 for 循环的结束 ,AjaxDataList.Push(AjaxData) 在结束括号内 @charlietfl - 替代建议? @Smith,我的意思是你应该在选中的条件下填充数组。否则,您将所有复选框推送到数组。 @SmithStanley 并不清楚网格的用途以及为什么要首先循环它们

以上是关于JQuery 仅将选中的行添加到数组的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 对带有checkbox的table操作 遍历选中的行的某一列的数据

使用 Jquery 收集数组中的行 ID,然后为新表查询这些值

如何使用 JQuery 在 MVC 中删除选中的行

jquery如何去掉下拉框中重复的值

使用jquery动态添加和删除表中的行和列

如何仅将字母字符扫描到 C 中的数组中?