以下是我如何生成部件号列表(来自json响应):
// Any given part could be used more than once. Only want each part # to show first occurance.
$.each(data, function(key, val) {
if ($.inArray(val.name, partArray) === -1) {
partArray.push(val.name);
}
});
return partArray;
我正在使用jQuery DataTables来呈现我的零件清单。我从上面的循环中有3行渲染:
["1", "2", "3"] // First Row
["4", "5", "6"] // Second Row
["7", "8", "9"] // Third Row
我想过滤我的零件清单(根据所选值显示/隐藏行)。为此,我需要生成一个与上面匹配的对象/数组。但是,如果我在console.log“partArray”中,在我的排序方法中,我得到了这个:
["1", "2", "3", "4", "5", "6", "7", "8", "9"] // Object
["1", "2", "3", "4", "5", "6", "7", "8", "9"] // Object
["1", "2", "3", "4", "5", "6", "7", "8", "9"] // Object
关于如何分割数组以匹配表输出的样子,我的想法已经用完了 - 所以我可以根据值进行过滤。目前,任何值都将返回true,因为所有值都可用于每一行。我对如何从每个循环中正确获取3行感到困惑,但是当我注销相同的数组时,我得到每行编号的3行。
感谢您的任何建议!
答案 0 :(得分:0)
嗯,我认为这不是最终的答案,但这是有效的。对于遇到类似问题的人来说,这是js。
表格列def:
{
'aTargets': [9],
'bSortable': true,
'bVisible': true,
'mData': 'partlist',
'mRender': '[, ].number'
}
过滤方法:
$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex) {
if ($('#showHideByPartNumber').val() === "" || $('#showHideByPartNumber').val() === 'undefined')
{
return true;
}
else
{
if (aData[9].indexOf($('#showHideByPartNumber').val()) > -1) // aData[9] is the column (zero-based).
{
return true;
}
}
return false;
}
);
$('#partsTbl').dataTable().fnDraw();