判断数据动态隐藏行

最近在解决客户问题的时候,遇到一个问题,觉得这种需求比较普遍,写一篇文章介绍一下。

问题描述:

如下图的一张表:

预览如下:

不难看出101-10310的下级,111-11311的下级,以此类推。

需求:

若所有下级所对应的值(即value,value2)都为0,即连同上下级一同隐藏。

12为例子:

121对应的那一行全部为0,则121211221234行数据全部隐藏。

若子级自己对应的数据都为0,则该行隐藏。

12为例子:

122123都对应的值都是0,那么这两行隐藏,12121行保留。

这个需要通过js来动态判断行的值,然后设置行的隐藏属性。

Js如下:

function hiddenzz()

{

for(var i=0;i<document.getElementById(“report1″).rows.length;i++)//取到报表行数

{

var a=”1″;

if(document.getElementById(“report1″).rows[i].cells[0].value.length==3)//只去遍历子级格子后面的格子值,格子值长度为3的即为子级

{

for(var j=1;j<document.getElementById(“report1″).rows[i].cells.length;j++)//遍历该行所有格子中的值

{

Var cellValue=document.getElementById(“report1″).rows[i].cells[j].value;

if(cellValue!=0)

{

a=”2″;

break;

}

//alert(i+”;”+j+”;”+cellValue);

//alert(“a的值是:“+a);

 

}

if(a==”1″)

{

if(document.getElementById(“report1″).rows[i-1].cells[0].value.length==2 && a==”1″)

{

document.getElementById(“report1″).rows[i-1].style.display=”none”;//隐藏当前行的上一行

}

document.getElementById(“report1″).rows[i].style.display=”none”;//隐藏当前行

}

 

}

}

}

热门文章