提取过滤后的表数据

Posted

技术标签:

【中文标题】提取过滤后的表数据【英文标题】:Extracting filtered table data 【发布时间】:2013-01-17 08:05:47 【问题描述】:

我想知道是否可以从使用 JQuery tableSorter 插件/小部件过滤的表中提取过滤后的数据。

我显示了一个大表,然后我使用普通的 tablesorter 功能对其进行过滤/排序 - 但我想做的是能够获取这个较小的表并从中导出一些数据

这是一个成员列表 - 所以我希望能够从过滤后的(例如,整个特定年龄的)数据中导出数据(例如电子邮件地址),这样我就可以向这些选定的人发送电子邮件,而无需手动输入他们等等。

这很容易做到吗?如果有人能指出我从哪里开始等正确的方向,我不介意我是否必须自己写一些东西?

感谢您提供的任何帮助, 克里斯

【问题讨论】:

您使用的是原始的tablesorter吗?如果是这样,您使用的是哪个过滤器插件?还是你在用我的forked version of tablesorter? 嗨 Mottie,我正在使用带有斑马和过滤器插件的原始版本。感谢您的回复 对不起 Mottie 我没有注意到你回复得这么快。它只是标准/提供的插件。JS 文件在顶部有这个:'tableSorter 2.4+ 小部件 - 更新于 2012 年 12 月 26 日'我在 $("#memberListTable").tablesorter( ... widgets: ["zebra", "filter"], 的初始化中使用以下行简单地定义了它 所以看起来你正在使用分叉版本......我会添加我的答案。 【参考方案1】:

您需要做的就是找到可见的表格单元格并保存它们的数据。

我不确定您希望如何导出数据,所以我在this demo 中选择了 csv:

$('.export').on('click', function()
    var csv = [];
    // find only visible rows; we're ignoring filtered/hidden rows
    $('table').find('tbody tr:visible').find('td').each(function()
        csv.push( $(this).text() );
    );
    // do what you want with the csv data here
    $('textarea').val( csv.join(',') )
);

【讨论】:

当你有 jQuery v1.7+ 时使用on()。对于旧版本的 jQuery,请使用 bind()。参考this question

以上是关于提取过滤后的表数据的主要内容,如果未能解决你的问题,请参考以下文章

VBA中的Excel过滤和复制

使用 VBA 将过滤后的数据复制到另一个工作表

尝试过滤转换后的日期时间值时超出范围的值

根据过滤后的表 2 更新表 1 列

过滤后的tableView的indexPath

(闪亮)修改用户过滤的表并看到它反映在主表中