我展开做好了,后面做不下去了,代码如下:<script> <% '二级数据保存到数组 set rs=server.createobject("adodb.recordset") sql="select * from zy_class order by c_id desc" rs.open sql,conn,1,1 %> var smallclass = new Array(); //数组结构:一级值,二级值 <% count1 = 0 do while not rs.eof %> smallclass[<%=count1%>]=new Array('<%=rs("c_big")%>','<%=rs("c_name")%>'); <% count1 = count1 + 1 rs.movenext loop rs.close %> var i; function addrows(bigclass,ri) { for (i=0; i <smallclass.length; i++) { if (smallclass[i][0] == bigclass) { var row = classtable.insertRow(ri+1);//id=recordTable row.className='tit1'; row.style.backgroundColor="#ffffff"; var col = row.insertCell(0); col.innerHTML = " <a href='showclass.asp?bigclass="+bigclass+"&class="+smallclass[i][1]+"'>"+smallclass[i][1]+"</a>"; } } } </script> <table width='180' cellspacing='1' cellpadding='0' bgcolor='#990100' align='center' id='classtable'> <% sqlb="select * from zy_bigclass order by c_id asc" set rsb=conn.execute(sqlb) do while not rsb.eof %> <tr bgcolor='#ffffff' class='tit1'><td onclick="addrows('<%=rsb("c_big")%>',this.parentNode.rowIndex);"><%=rsb("c_big")%></td></tr> <% rsb.movenext loop %> </table>
<div>11111</div>
<div>22222</div>
<div>33333</div>
</div>
<div id="a2" ><span onClick="isshow('a2')" style="color:#FF0000;cursor:pointer">讨厌</span>
<div>44444</div>
<div>55555</div>
<div>66666</div>
</div>
<div id="a3"><span onClick="isshow('a3')" style="color:#FF0000;cursor:pointer">星期一</span>
<div>77777</div>
<div>88888</div>
<div>99999</div>
</div>
<script>
function ine(){
for(var j=1;j<=3;j++)
{for(var i=0;i<document.getElementById("a"+j).getElementsByTagName("div").length;i++)
{document.getElementById("a"+j).getElementsByTagName("div")[i].style.display="none"}}
}
function isshow(e)
{ine()
for(var i=0;i<document.getElementById(e).getElementsByTagName("div").length;i++)
document.getElementById(e).getElementsByTagName("div")[i].style.display=""}
ine();
</script>
是这样吗???
<li> 1
<ul>
<li> 1_1 </li>
<li> 1_2
<ul>
<li> 1_2_1 </li>
<li> 1_2_2 </li>
</ul>
</li>
</ul>
</li>
<li> 2
<ul>
<li> 2_1 </li>
</ul>
</li>
</ul><script>function Each(list, fun){
for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }
};Each(document.getElementById("aa").getElementsByTagName("li"), function(o){
o.onclick = function(e){
window.event ? window.event.cancelBubble = true : e.stopPropagation() ;
var ul = o.getElementsByTagName("ul")[0];
if(ul){ ul.style.display = ul.style.display == "none" ? "" : "none"; }
}
})
</script>试试这个
点击某个标题a-》判断当前是否有子菜单处于打开状态,如果有,隐藏当前的菜单,如果没有继续-》展开a标题对应的子菜单,记录a标题的div的id玮当前展开的子菜单-》循环
<%
'二级数据保存到数组
set rs=server.createobject("adodb.recordset")
sql="select * from zy_class order by c_id desc"
rs.open sql,conn,1,1
%>
var smallclass = new Array();
//数组结构:一级值,二级值
<%
count1 = 0
do while not rs.eof
%>
smallclass[<%=count1%>]=new Array('<%=rs("c_big")%>','<%=rs("c_name")%>');
<%
count1 = count1 + 1
rs.movenext
loop
rs.close
%>
var i;
function addrows(bigclass,ri)
{
for (i=0; i <smallclass.length; i++)
{
if (smallclass[i][0] == bigclass)
{
var row = classtable.insertRow(ri+1);//id=recordTable
row.className='tit1';
row.style.backgroundColor="#ffffff";
var col = row.insertCell(0);
col.innerHTML = " <a href='showclass.asp?bigclass="+bigclass+"&class="+smallclass[i][1]+"'>"+smallclass[i][1]+"</a>";
}
}
}
</script>
<table width='180' cellspacing='1' cellpadding='0' bgcolor='#990100' align='center' id='classtable'>
<%
sqlb="select * from zy_bigclass order by c_id asc"
set rsb=conn.execute(sqlb)
do while not rsb.eof
%>
<tr bgcolor='#ffffff' class='tit1'><td onclick="addrows('<%=rsb("c_big")%>',this.parentNode.rowIndex);"><%=rsb("c_big")%></td></tr>
<%
rsb.movenext
loop
%>
</table>
这个判断怎么只有一个分支啊?