JQuery数据表使用嵌套的Object数据(数组中的对象)过滤列

时间:2017-08-08 08:53:30

标签: jquery datatables

在我的JSON中,我有一个嵌套的Object数据作为数组和Object。它看起来像是:

"contentVMlist":[
            {
               "dbContID":3,
               "dbContType":2,
            },
            {
               "dbContID":1,
               "dbContType":1,
            }

使用"aoColumns: [ { "data": "contentVMlist.[ ].dbContType"} ]"我将数据输入表中。 它在表格列" 2 1"。

中显示如下

this.api().columns([9]).every(function () {
var column = this;
else if (column[0] == 9) {
var select2 = $('<select> </select>') // the select is not so short i just shortened it now
                            .appendTo($('#dbContType')).on('change', function () {
                                        var val = $.fn.dataTable.util.escapeRegex(
                                            $(this).val()
                                        );
column.search(val ? '^' + val + '$' : '', true, false).draw();
});

if&#34; contentVMlist&#34;只有1个条目,一切正常。但是如果有2个或更多条目(例如&#34; 1 3&#34;或&#34; 1 3 2&#34;)它不能将条目视为单个出现。如果选择是&#34; 1 3 2&#34;它可以工作,但是用户只想选择一个然后显示该类型的所有(如果有多个它也应该显示)

我怎样才能完成这项工作? 我尝试了一些不起作用的不同东西。

1 个答案:

答案 0 :(得分:0)

我想最简单的方法是迭代这个嵌套数组:

var contentVMlist= []; // get a reference to the nested array
jQuery.each(contentVMlist, function() {
    console.log(this.dbContType); // check it
    selectObj.appendTo("<option>"+this.dbContType+"</option>");
});