我有一张大桌子,这是其中的一部分:
我的目标是通过切换除 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");