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 中没有声明 gridrow
和 colno
变量。
【讨论】:
在另一个循环中循环所有复选框没有意义 我没有在 for 循环中填充数组吗?如果我查看 for 循环的结束 ,AjaxDataList.Push(AjaxData) 在结束括号内 @charlietfl - 替代建议? @Smith,我的意思是你应该在选中的条件下填充数组。否则,您将所有复选框推送到数组。 @SmithStanley 并不清楚网格的用途以及为什么要首先循环它们以上是关于JQuery 仅将选中的行添加到数组的主要内容,如果未能解决你的问题,请参考以下文章
JQuery 对带有checkbox的table操作 遍历选中的行的某一列的数据