日期:2014-05-16  浏览次数:20470 次

显示某层的时候隐藏所有其他层
遍历一个数据的的表结构,需要如下设计:
没有使用层而是使用的 <tr   style= "display:none "   id= "divxxx ">     xxx表示数字的ID,为了区分上百个分类xxx是随机生成的数字,所以无法使用数组等方法保存当前分类所在的 <tr> 的ID,但是现在要做到显示某个分类的时候,要隐藏其他所有的层,并且是只隐藏同级分类的层并且显示子分类的层,其父层不能隐藏。
这个怎么做啊?想了半天也不知道如何下手,求高人指点

------解决方案--------------------
根据你的描述
似乎应该首先分清楚从属关系啦
c802800002字段应该记录的就是该分类的父类了

我想你的程序的关键问题是没有办法找到所有的层和需要操作的层

如果你有一个数据结构记录着分类的从属关系
这个问题就好解决了

你所说的分类号xxx是随机生成的数字
并不是多大的问题
因为并不是用分类号作为数组索引的,呵呵

可以这样啊

在服务端生成一个类似这样的代码

var aryDiv=[[123,父分类789],[789,-1],[654,父分类123],[890,父分类789]];

在切换效果的时候
查找这个二维数组
查找aryDiv[i][0]!=自己的id中的所有分类中aryDiv[i][0]=自己的id的节点的所有[i][0]

这样表示吧
我最近逻辑有些混乱

function showHidden(sid){
var cnt = aryDiv.length
for(var i=0;i <cnt;i++)
{
if(aryDiv[i][0]==sid) show(aryDiv[i][0]);
else
if(aryDiv[i][1]==sid) //指定分类的子分类
show(aryDiv[i][0]);
else
hidden(aryDiv[i][0]);

}

}

你看这样可以吗?