javascript - Jquery Datatables获取父列的绝对索引
问题描述
我已经为数据表编写了内置的列过滤插件,但我遇到了一些小麻烦,
我已经在每个列页脚中创建了文本输入,现在 - 在 keyup 上我想捕获它们的索引,然后在过滤时使用它。
我通过代码中的以下行获取父列索引:
var visIdx = $(this).parent().index();
仅当所有列都可见时,它才正确返回索引,但当其中之一被隐藏时,随后的列返回错误索引。
它导致当某些列被隐藏时,过滤应用于坏列
小提琴上有我的完整代码:http: //live.datatables.net/pulewemu/3/edit ?js,console,output
解决方案
问题是 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");
推荐阅读
- c++ - 运行时错误:将无符号偏移添加到 0x603000000040 溢出到 0x603000000034 (stl_vector.h)
- reactjs - 为什么 setState 只更新改变原始状态
- c++ - 我的程序没有打印正确的输出
- javascript - 如何更新猫鼬中的子文档数据?
- python - 通过 GLM 模型预测索赔数量
- multithreading - 如何为 Rust 中的不同线程克隆随机数生成器?
- wordpress - 如何在 WooCommerce 中的变体标题旁边添加工具提示?
- faunadb - 索引完全在动物区数据库中返回“数据”字段
- android - Android:注入了 hilt throws 的 ViewModel 没有零参数构造函数”
- node.js - “无法读取未定义的属性‘url’”,即使它已经定义