表排序,过滤等Matt Kruse的库

时间:2019-06-14 01:12:45

标签: javascript html filter filtering

情况:

我正在使用我在URL http://javascripttoolbox.com/lib/table/source.php上的表排序,过滤等页面中找到的Matt Kruse的库进行游戏。

它工作得很好,但是我希望实现一些改进(也许最好使用locution“新功能”),而且我不知道从哪里开始,因为我是js和那个js的新手。该文件使用了我还不太了解的更高级的编程语句,至少现在还没有。

我只有一个html文件,其中包含一些表格。由于该库,其中一些是可过滤和可排序的。表的数量可以变化,每个表中的列(字段)数也可以变化,并且每个表的记录(行)数也可以变化。当然,每个表中的内容也不同。

通过在我选择的目标列的th元素中放置一个特定的css类,我向Matt Kruse的库指示在该列中创建一个 html元素,该元素由<

当我希望基于某些列将过滤器应用于表格时,我只需从相应的 框中选择相对的 即可对表格进行过滤因此,正如我期望的那样。它仅在应用了过滤器的特定列中隐藏不匹配条件的记录(html行)。当然,如果需要,可以一次在多个列上使用过滤器。它的工作原理与MS Excel非常相似。

问题

当我将过滤器应用于列时,其他列过滤器下拉组合框(包含用于过滤其他列的已编译选项的html元素)将继续显示所有选项,而不是隐藏表中已过滤的那些选项,不再需要。因此,特别是在复杂的表上从其他列中选择过滤条件变得非常棘手,因为用户必须自己了解不可用的条件是什么,因为相应的行已经被已经应用于另一列的过滤器隐藏了。 / p>

另一件事:当我编辑一个或多个表单元格的内容时,相对列的过滤器不会更新以匹配所做的编辑,但似乎保持不变。

这个问题的目标

如果我在过滤列时使用电子表格(例如LibreOffice Calc,MS Excel或Google在线电子表格),那么也会过滤其他列的过滤下拉菜单。如果我删除某个地方的过滤器,则下拉列表中其他列的过滤器也会相应更新。

所有这些行为是我想在Matt Kruse的库中实现的。这样一来,按多列进行过滤将更加容易,因为包含其他列的过滤条件的框将仅显示所有先前应用的过滤器留下的过滤条件。

我已经尝试过的东西

我试图实现一些目的,但是它太慢了,以至于我对它的执行时间感到ham愧,以至于我已经删除了我创建的整个算法。 为了进行比较,使用Matt Kruse的库算法意味着只需几分钟即可将所有表数据编译为过滤器元素(也包括所有表)。但是我实现的算法仅一张桌子就需要30-40秒以上的时间。方式太低效了。 基本上,我为每个过滤表编写了几个“ for循环”,将选项的值与相应列的每个值进行比较,如果发现一个mach使该选项可见,否则它将该元素隐藏到中。我将该算法附加到每个算法的 change事件上,因此当我单击并选择该事件时,将触发该事件,并更新表的所有内容。它按预期工作,但正如我所说,我实施的速度要慢得多。

所以问题是:

如何修改Matt Kruse的js文件以实现我希望保持最高性能的功能?

(如果Matt Kruse正在阅读此书,请随时接受这个想法并实现上面需要的新功能:我相信将不胜感激)。

提前感谢大家的贡献。

0 个答案:

没有答案