显示某层的时候隐藏所有其他层

yalan 2007-04-13 12:12:25
遍历一个数据的的表结构,需要如下设计:
没有使用层而是使用的<tr style="display:none" id="divxxx"> xxx表示数字的ID,为了区分上百个分类xxx是随机生成的数字,所以无法使用数组等方法保存当前分类所在的<tr>的ID,但是现在要做到显示某个分类的时候,要隐藏其他所有的层,并且是只隐藏同级分类的层并且显示子分类的层,其父层不能隐藏。
这个怎么做啊?想了半天也不知道如何下手,求高人指点
...全文
269 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yalan 2007-11-16
  • 打赏
  • 举报
回复
不太好用~~~~
不过我还是把分数全给你了呵呵
谢谢阿
bingdian37 2007-04-17
  • 打赏
  • 举报
回复
那个数组的定义,我是为了表达意思才那样写的....

你看看主要部分

其他部分是我思考的过程

有些废话

还有些错误

担待一些啦,,,,,最近状态不是很好
bingdian37 2007-04-17
  • 打赏
  • 举报
回复
根据你的描述
似乎应该首先分清楚从属关系啦
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]);

}

}

你看这样可以吗?
yalan 2007-04-17
  • 打赏
  • 举报
回复
高手在吗?
yalan 2007-04-13
  • 打赏
  • 举报
回复
<Script type="text/javascript">
<!--
function showhidden(sid)
{
whichEl = eval("div" + sid);
if (whichEl.style.display == "none")
{
eval("div" + sid + ".style.display=\"\";");
}
else
{
eval("div" + sid + ".style.display=\"none\";");
}
}
</script>

<%
set rs1=cc.execute("select distinct c802800001 from "&table_item&"")
while not rs1.eof
sprndid1=makerndnum(10) '为<tr>取随机数,然后将该随机ID给其子类
response.write("<tr style='cursor:hand'><td><a href=""#"" onclick=""showhidden("&sprndid1&")"">"&spname&"  "&sprndid1&"</a></td></tr>")

'显示下一级分类
response.write("<tr id=""div"&sprndid1&""" style=""display:none""><td>") '随机数给了子分类的<TR>,就是父分类控制显示子分类
response.write("<table width=""200"" border=""0"" cellspacing=""1"" cellpadding=""2"" bgcolor=#cccccc>") '处理二级分类
set rs2=cc.execute("select distinct c802800002 from "&table_item&" where c802800001='"&rs1("c802800001")&"'")
while not rs2.eof
response.write("<tr><td>"&rs2("c802800002")&"</td></tr>")
rs2.movenext
wend
rs2.close
set rs2=nothing
'二级分类处理结束
response.write("</table>")
response.write("</td></tr>")
'显示下一级分类结束
rs1.movenext
wend
rs1.close
set rs1=nothing
%>

以上是主要代码,谢谢
adverse 2007-04-13
  • 打赏
  • 举报
回复
子分类的层与其父层有啥区别呀?
你最好帖写主要的代码,都不知道你是咋做的.

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧