0

我有一张大桌子,这是其中的一部分:

表格图

我的目标是通过切换除 Sum 行之外的所有部分行并将部分标题移动到空的总和行单元格,然后在下一次切换时将其移回其原始形式,使每个部分可折叠和不可折叠。

我试图从几个角度来解决这个问题,但由于我是一个 jQuery 新手,我一辈子都找不到有效的方法来做到这一点。

问题的第一部分实际上是定义部分。由于它们的长度不同,我想我首先需要遍历每一行并检查第一个单元格是否为空。如果不是,我假设它是一个新部分,如果是,我假设它是另一个并将其添加到当前部分。

然后对于每个部分的第一行和单元格,我设置了一个单击事件,该事件将所有行与 Sum 行分开,并将部分标题移入其中。

我已经成功地做到了这一点,但它使用了大量的 Javascript 并且非常慢。所以就像我说的,我想知道如何以最有效的方式做到这一点。

从本质上讲,有没有一种好方法可以只使用 jQuery 选择器来选择所有部分,而不必遍历每一行并检查每个单元格等?我很高兴知道是否有更有效的方法可以做到这一点,但我们将不胜感激。

出于好奇,这是我用来为图像着色的代码:

var rowCount = $("tr").length;

var rows = $("tr > td:first-child").not("tr:nth-child(1) > td:first-child").not("tr:nth-child("+rowCount+") > td:first-child").not("tr:nth-child("+(rowCount-1)+") > td:first-child");

var sectionTitles = $(rows).filter(function(){
    return !($(this).text()=="");
});

var sectionItemTitles = $(rows).not(sectionTitles);

sectionTitles.css({"background":"red"});
sectionTitles.attr("type","section");

sectionItemTitles.css({"background":"blue"});
sectionItemTitles.attr("type","row");
4

1 回答 1

0

要实现此功能,您必须识别需要组合在一起的行并添加一个类和一个加减号的图像以指示可折叠空间。在 plusminus 的 click 函数上,使用 toggle() 函数折叠或取消折叠分组数据。

切换jQuery

于 2013-09-11T09:24:32.073 回答