首页 > 解决方案 > Jquery Datatables获取父列的绝对索引

问题描述

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

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

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

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

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

它导致当某些列被隐藏时,过滤应用于坏列

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

标签: javascriptjquerydatatables

解决方案


问题是 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");

推荐阅读