请教如何实现树的初始化,使得页面一打开,默认的节点所在的树全展开而其他节点则全关闭~~有代码~谢谢~急~ 怎么又是这个哥们你这是用什么树型生成器生成的吧不太好改,我看看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哥们,改是帮你改了,但是通用性不强,这主要是因为你的原始代码结构不合理,下面这个就是了:<html><head> <script language=javascript> //cMenuClosed,cMenuOpened var cMenuClosed = "+"; var cMenuOpened = "-"; var cPreWidth = "10%"; var cContentWidth = "90%"; var cChildTrNamePre = "SubMenu_"; var strStyle1="display:visiable"; var strStyle2="display:none"; //AAA var Root = new Array("AAA", "999999"); var Offices = new Array(); Offices[0] = ""; Offices[1] = new Array(); Offices[1][0] = "BBB"; Offices[1][1] = "1"; Offices[1][2] = "0"; Offices[1][3] = new Array(); Offices[1][3][0] = ""; Offices[1][3][1] = new Array("C","100","3"); Offices[1][3][2] = new Array("D", "101", "4"); Offices[1][3][3] = new Array("E", "103", "2"); Offices[1][3][4] = new Array("F", "104", "3"); Offices[1][3][5] = new Array("G", "105", "0"); Offices[2] = new Array(); Offices[2][0] = "H"; Offices[2][1] = "2"; Offices[2][2] = "0"; Offices[2][3] = new Array(); Offices[2][3][0] = ""; Offices[2][3][1] = new Array("I","200","2"); Offices[2][3][2] = new Array("J", "201", "1"); Offices[2][3][3] = new Array("K", "203", "0"); Offices[2][3][4] = new Array("L", "204", "0"); Offices[2][3][5] = new Array("M", "205", "0"); var OfficeSelect = '103'; //这里的数字如果在树组中没有的话,则只展开根结点 var OfficeSelectPath = new Array('999999','2'); function TNodes_Detail_Ck(Aele, eleid){ var tableObj = document.getElementById(eleid); if(tableObj.style.display == "none"){ Aele.innerHTML = cMenuOpened; tableObj.style.display = ""; }else{ Aele.innerHTML = cMenuClosed; tableObj.style.display = "none"; } } function inOfficeSelectPath(OfficeCode){ for(var i=1; i<OfficeSelectPath.length-1; i++) if (OfficeSelectPath[i] == OfficeCode) return true; return false; } function TreeNodeSelect(ele){ for(var i=0;i<document.all.length; i++){ if (document.all[i].tagName=="TD"){ if(document.all[i].id=="td_Office"){ document.all[i].className=""; } } } ele.parentElement.className = "treeSelect"; } function CreateOfficesTree(){ //first create roottry{ document.writeln('<tr>'); document.writeln(' <td width="'+cPreWidth+'" align="right" >'); if(Offices.length==0){ document.writeln(cMenuClose); }else{ var bOpen = OfficeSelectPath.length>1?true:false; var cOpen = OfficeSelect>=0?true:false; var dOpen = bOpen&&cOpen; document.writeln(' <a href="#" onclick="TNodes_Detail_Ck(this,\''+cChildTrNamePre+Root[1]+'\')">' + (dOpen?cMenuOpened:cMenuClosed) + '</a>'); } document.writeln(' <td width="'+cContentWidth+'" id="td_Office" '+(Offices==OfficeSelect?"class=treeSelect":"")+'>'); document.writeln(' <a href="main.cgi?OfficeCode='+Root[1]+'" target="mainFrame" onclick="javascript:TreeNodeSelect(this)">'+Root[0]+'</a>'); document.writeln(' </td>'); document.writeln('</tr>'); //second create offices if(Offices.length>1){ document.writeln(' <tr id="'+cChildTrNamePre+Root[1]+'" style="'+(dOpen?strStyle1:strStyle2)+'">'); document.writeln(' <td width="10%" align="right">'); document.writeln(' </td>'); document.writeln(' <td width="90%">'); document.writeln(' <table width="100%" cellpadding="0" cellspacing="0" border="1">'); //output Office level 1 for(var i=1; i<Offices.length; i++){ cOpen = parseInt(Offices[i][1])==parseInt(OfficeSelect)?true:false; if (!cOpen){ for(var j=1; j<Offices[i][3].length; j++){ if (parseInt(Offices[i][3][j][1])==parseInt(OfficeSelect)) { cOpen = true; break; }else{ cOpen = false; } } } dOpen = bOpen&&cOpen; document.writeln(' <tr>'); document.writeln(' <td align="right" >'); if(Offices[i][2].length==0){ document.writeln(' '+cMenuOpened); }else{ document.writeln(' <a href="#" onclick="TNodes_Detail_Ck(this,\''+cChildTrNamePre+Offices[i][1]+'\')">' + (dOpen?cMenuOpened:cMenuClosed) + '</a>'); } document.writeln(' </td>'); document.writeln(' <td id="td_Office" '+(Offices[i][1]==OfficeSelect?"class=treeSelect":"")+'>'); document.writeln(' <a href="main.cgi?OfficeCode='+Offices[i][1]+'" target="mainFrame" onclick="javascript:TreeNodeSelect(this)">'+Offices[i][0]+'</a>'); document.writeln(' </td>'); document.writeln(' </tr>'); //output Office level 2 if(Offices[i][3].length>1){ document.writeln(' <tr id="'+cChildTrNamePre+Offices[i][1]+'" style="'+(dOpen?strStyle1:strStyle2)+'">'); document.writeln(' <td align="right">'); document.writeln(' </td>'); document.writeln(' <td>'); document.writeln(' <table width="100%" cellpadding="0" cellspacing="0" border="0">'); //output Office level 3 for(var j=1; j<Offices[i][3].length; j++){ document.writeln(' <tr id="'+cChildTrNamePre+Offices[i][3][j][1]+'">'); document.writeln(' <td width="10%" align="right">'); document.writeln(' '+cMenuOpened); document.writeln(' </td>'); document.writeln(' <td id="td_Office" '+(Offices[i][3][j][1]==OfficeSelect?"class=treeSelect":"")+'>'); if(Offices[i][3][j][2]=="0"){ document.writeln(' '+Offices[i][3][j][0]); }else{ document.writeln(' <a href="main.cgi?OfficeCode='+Offices[i][3][j][1]+'" target="mainFrame" onclick="javascript:TreeNodeSelect(this)" >'+Offices[i][3][j][0]+'</a>'); } document.writeln(' </td>'); document.writeln(' </tr>'); } // for document.writeln(' </table>'); document.writeln(' </td>'); document.writeln(' </tr>'); } } document.writeln(' </table>'); document.writeln(' </td>'); document.writeln(' </tr>'); }}catch(e){alert("CreateOfficesTree:"+e);} } </script></head><body topmargin="0" leftmargin="0"><table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr> <td width="100%" bgcolor="#99CCCC" align="center" colspan=3> tree </td> </tr><script language=javascript>CreateOfficesTree();</script></table></body></html> 太感激了,楼上的兄弟~~我也觉得这个树通用性暴差~~ 各位大牛,关于JS轮盘抽奖! DataGrid的绑定问题,求大侠们帮忙!!!! 一个简单问题 谁给个ASP里面整 个页面循环滚动的代码啊? javascript中定义字符串,怎样才能够含有&符号? 怎么有星期计算日期 可个根据对应索引获得对象吗? 在input里输入一字符串,然后要让select下拉框里的选项按此排序,请教怎么实现??? 请问,使用javascript可以取得客户端的硬件信息吗? 我用javascript验证表单是否被空提交,但为什么有的用户还是可以空提交? 超奇怪問題,等高手來解決!! 找个例子
下面这个就是了:<html>
<head>
<script language=javascript>
//cMenuClosed,cMenuOpened
var cMenuClosed = "+";
var cMenuOpened = "-";
var cPreWidth = "10%";
var cContentWidth = "90%";
var cChildTrNamePre = "SubMenu_";
var strStyle1="display:visiable";
var strStyle2="display:none";
//AAA
var Root = new Array("AAA", "999999");
var Offices = new Array();
Offices[0] = "";
Offices[1] = new Array();
Offices[1][0] = "BBB";
Offices[1][1] = "1";
Offices[1][2] = "0";
Offices[1][3] = new Array();
Offices[1][3][0] = "";
Offices[1][3][1] = new Array("C","100","3");
Offices[1][3][2] = new Array("D", "101", "4");
Offices[1][3][3] = new Array("E", "103", "2");
Offices[1][3][4] = new Array("F", "104", "3");
Offices[1][3][5] = new Array("G", "105", "0"); Offices[2] = new Array();
Offices[2][0] = "H";
Offices[2][1] = "2";
Offices[2][2] = "0";
Offices[2][3] = new Array();
Offices[2][3][0] = "";
Offices[2][3][1] = new Array("I","200","2");
Offices[2][3][2] = new Array("J", "201", "1");
Offices[2][3][3] = new Array("K", "203", "0");
Offices[2][3][4] = new Array("L", "204", "0");
Offices[2][3][5] = new Array("M", "205", "0"); var OfficeSelect = '103'; //这里的数字如果在树组中没有的话,则只展开根结点
var OfficeSelectPath = new Array('999999','2'); function TNodes_Detail_Ck(Aele, eleid){
var tableObj = document.getElementById(eleid);
if(tableObj.style.display == "none"){
Aele.innerHTML = cMenuOpened;
tableObj.style.display = "";
}else{
Aele.innerHTML = cMenuClosed;
tableObj.style.display = "none";
}
} function inOfficeSelectPath(OfficeCode){
for(var i=1; i<OfficeSelectPath.length-1; i++)
if (OfficeSelectPath[i] == OfficeCode) return true;
return false;
}
function TreeNodeSelect(ele){
for(var i=0;i<document.all.length; i++){
if (document.all[i].tagName=="TD"){
if(document.all[i].id=="td_Office"){
document.all[i].className="";
}
}
}
ele.parentElement.className = "treeSelect";
} function CreateOfficesTree(){
//first create root
try{
document.writeln('<tr>');
document.writeln(' <td width="'+cPreWidth+'" align="right" >');
if(Offices.length==0){
document.writeln(cMenuClose);
}else{
var bOpen = OfficeSelectPath.length>1?true:false;
var cOpen = OfficeSelect>=0?true:false;
var dOpen = bOpen&&cOpen;
document.writeln(' <a href="#" onclick="TNodes_Detail_Ck(this,\''+cChildTrNamePre+Root[1]+'\')">' + (dOpen?cMenuOpened:cMenuClosed) + '</a>');
}
document.writeln(' <td width="'+cContentWidth+'" id="td_Office" '+(Offices==OfficeSelect?"class=treeSelect":"")+'>');
document.writeln(' <a href="main.cgi?OfficeCode='+Root[1]+'" target="mainFrame" onclick="javascript:TreeNodeSelect(this)">'+Root[0]+'</a>');
document.writeln(' </td>');
document.writeln('</tr>');
//second create offices
if(Offices.length>1){
document.writeln(' <tr id="'+cChildTrNamePre+Root[1]+'" style="'+(dOpen?strStyle1:strStyle2)+'">');
document.writeln(' <td width="10%" align="right">');
document.writeln(' </td>');
document.writeln(' <td width="90%">');
document.writeln(' <table width="100%" cellpadding="0" cellspacing="0" border="1">');
//output Office level 1
for(var i=1; i<Offices.length; i++){
cOpen = parseInt(Offices[i][1])==parseInt(OfficeSelect)?true:false;
if (!cOpen){
for(var j=1; j<Offices[i][3].length; j++){
if (parseInt(Offices[i][3][j][1])==parseInt(OfficeSelect))
{
cOpen = true;
break;
}else{
cOpen = false;
}
}
}
dOpen = bOpen&&cOpen;
document.writeln(' <tr>');
document.writeln(' <td align="right" >');
if(Offices[i][2].length==0){
document.writeln(' '+cMenuOpened);
}else{
document.writeln(' <a href="#" onclick="TNodes_Detail_Ck(this,\''+cChildTrNamePre+Offices[i][1]+'\')">' + (dOpen?cMenuOpened:cMenuClosed) + '</a>');
}
document.writeln(' </td>');
document.writeln(' <td id="td_Office" '+(Offices[i][1]==OfficeSelect?"class=treeSelect":"")+'>');
document.writeln(' <a href="main.cgi?OfficeCode='+Offices[i][1]+'" target="mainFrame" onclick="javascript:TreeNodeSelect(this)">'+Offices[i][0]+'</a>');
document.writeln(' </td>');
document.writeln(' </tr>');
//output Office level 2
if(Offices[i][3].length>1){
document.writeln(' <tr id="'+cChildTrNamePre+Offices[i][1]+'" style="'+(dOpen?strStyle1:strStyle2)+'">');
document.writeln(' <td align="right">');
document.writeln(' </td>');
document.writeln(' <td>');
document.writeln(' <table width="100%" cellpadding="0" cellspacing="0" border="0">');
//output Office level 3
for(var j=1; j<Offices[i][3].length; j++){
document.writeln(' <tr id="'+cChildTrNamePre+Offices[i][3][j][1]+'">');
document.writeln(' <td width="10%" align="right">');
document.writeln(' '+cMenuOpened);
document.writeln(' </td>');
document.writeln(' <td id="td_Office" '+(Offices[i][3][j][1]==OfficeSelect?"class=treeSelect":"")+'>');
if(Offices[i][3][j][2]=="0"){
document.writeln(' '+Offices[i][3][j][0]);
}else{
document.writeln(' <a href="main.cgi?OfficeCode='+Offices[i][3][j][1]+'" target="mainFrame" onclick="javascript:TreeNodeSelect(this)" >'+Offices[i][3][j][0]+'</a>');
}
document.writeln(' </td>');
document.writeln(' </tr>');
} // for
document.writeln(' </table>');
document.writeln(' </td>');
document.writeln(' </tr>'); }
}
document.writeln(' </table>');
document.writeln(' </td>');
document.writeln(' </tr>');
}
}catch(e){
alert("CreateOfficesTree:"+e);
}
}
</script>
</head>
<body topmargin="0" leftmargin="0">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="100%" bgcolor="#99CCCC" align="center" colspan=3>
tree
</td>
</tr>
<script language=javascript>
CreateOfficesTree();
</script></table>
</body>
</html>