jQuery数据表获取父列的绝对索引

时间:2018-12-05 13:53:02

标签: javascript jquery datatables

我已经为数据表编写了内置的列过滤插件,并且遇到了小麻烦,

我已经在每个页脚中创建了文本输入,现在-在键盘上,我想捕获它们的索引,然后在过滤时使用它。

我通过以下代码获取父列索引:

var visIdx = $(this).parent().index();

仅当所有列可见时,它才返回正确的索引,但是当其中之一被隐藏时,随后的列将返回错误的索引。

这会导致当某些列被隐藏时,过滤将应用于错误的列

小提琴上有我的完整代码:http://live.datatables.net/pulewemu/3/edit?js,console,output

1 个答案:

答案 0 :(得分:1)

问题是DataTable正在每个draw()上创建新元素。您看到的不是带有一些隐藏列的“原始”表,而是一组全新的元素,仅包含“可见”列。

因此无法从那里获取“绝对”索引。

我建议在定义搜索输入的.each()循环的数据属性中添加该索引:

$('#example tfoot th').each(function(i) {
    var title = $(this).text();
    var hate = '<input size="4" class="fder" type="text" id="gte" placeholder="min" data-index="'+i+'" />'
    hate += '<br><input size="4" class="fder" type="text" id="lov" placeholder="max" data-index="'+i+'" />'
    $(this).html(hate);
});

然后在keyup上检索索引,如下所示:

var visIdx = $(this).data("index");