Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表排序、筛选等Matt Kruse';s图书馆 情况:_Javascript_Html_Filter_Filtering - Fatal编程技术网

Javascript 表排序、筛选等Matt Kruse';s图书馆 情况:

Javascript 表排序、筛选等Matt Kruse';s图书馆 情况:,javascript,html,filter,filtering,Javascript,Html,Filter,Filtering,我正在使用Matt Kruse的库玩一些游戏,我在URL的页面上找到了表排序、过滤等 它工作得很好,但我希望实现一点改进(也许使用“新功能”会更好),我不知道从哪里开始,因为我是js的新手,js文件使用了更高级的编程语句,我不完全理解,至少现在还不了解 我有一个包含一些表的html文件。多亏了这个库,它们中的一些是可过滤和可排序的。表的数量可能不同,每个表中的列(字段)数量也可能不同,每个表的记录(行)数量也可能不同。当然,每个表中的内容也不同 通过在我选择的目标列的第th个元素中放置特定的cs

我正在使用Matt Kruse的库玩一些游戏,我在URL的页面上找到了表排序、过滤等

它工作得很好,但我希望实现一点改进(也许使用“新功能”会更好),我不知道从哪里开始,因为我是js的新手,js文件使用了更高级的编程语句,我不完全理解,至少现在还不了解

我有一个包含一些表的html文件。多亏了这个库,它们中的一些是可过滤和可排序的。表的数量可能不同,每个表中的列(字段)数量也可能不同,每个表的记录(行)数量也可能不同。当然,每个表中的内容也不同

通过在我选择的目标列的第th个元素中放置特定的css类,我指示Matt Kruse的库在该列中创建一个html元素,该元素由一个html元素列表填充,这些元素由js it自身通过为该列选择每个记录的唯一值来动态计算

当我希望基于特定列对表应用过滤器时,我只需从相应的框中选择相对,表就会得到相应的过滤,正如我所期望的那样。它的工作原理是在特定列中隐藏不符合条件的记录(html行),并对其应用过滤器。当然,如果需要,可以同时在多个列上使用过滤器。它的工作原理与MS Excel非常相似

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

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

这个问题的目的 如果我在筛选列时使用电子表格(如LibreOffice Calc、MS Excel、Google online电子表格或其他),其他列的筛选下拉菜单也会被筛选。如果我在某个地方删除了一个过滤器,则“过滤器”下拉列表中的其他列也会相应地更新

所有这些行为都是我想在Matt Kruse的库中实现的。通过这种方式,按多列过滤会更容易,因为包含其他列的过滤条件的框将只显示所有以前应用的过滤器留下的过滤条件

我已经试过了 我试图实现一些东西来实现它,但是它太慢了,以至于我对它的执行时间感到非常羞愧,以至于我已经删除了我创建的整个算法。 为了进行比较,使用Matt Kruse的库算法意味着只需几个实例就可以将所有表数据编译成过滤器元素(在所有表上也是如此)。但是我实现的算法只需要一张表就需要30-40秒。效率太低了。 实质上,我写了几个“for循环”,每个循环在每个过滤表中,将选项的值与对应列中的每个值进行比较,如果发现一个马赫数,则该选项保持可见,否则它会将该元素隐藏到列表中。我将该算法附加到每个的更改事件,因此当我单击并选择该事件时,该事件被触发,表的所有内容都被更新。它如预期的那样工作,但正如我所说的,我实现的要慢得多

因此,问题是: 我如何修改Matt Kruse的js文件来实现我希望保持最高性能的功能

(如果马特·克鲁斯正在读这篇文章,请随意接受这个想法并实现上面所需的新功能:我相信这将是非常感谢的)

提前感谢大家的贡献