拆分数组/对象以过滤值

时间:2014-03-03 16:23:48

标签: jquery datatables jquery-datatables

以下是我如何生成部件号列表(来自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行。

感谢您的任何建议!

1 个答案:

答案 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();