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

新手,求解JS目录树的问题
<Script Language= "JavaScript " type="text/javascript"> 
//Name﹕無限層樹狀 
//Design:LiuZXIT 
//OverTime:2003/3/19 
//Note:在IE5.i上測試通過 

var strStyle= ' <style type= "text/css "> ' 
strStyle+= 'span.SelectIng{color:#ff00ff;border:solid 1pt #666666;padding:0.5pt;height:4px;background-color:#cccccc;} ' 
strStyle+= 'span.NoSelect{color:#000084;border:solid 1pt #ffffff;padding:0.5pt;height:4px;background-color:#ffffff;} ' 
strStyle+= 'span.SelectEd{color:#D02090;border:solid 1pt #888888;padding:0.5pt;height:4px;background-color:#f3f3f3;} ' 
strStyle+= ' </style> ' 
document.write(strStyle) 

var myRs=new Array(), selectItem; 
function compare(a,b) {return parseInt(a[1]) - parseInt(b[1])} 
function InsertItem(s){myRs[myRs.length++] = s.split(/,/);} 

function ExCloAll(n){ 
var d=document.all( '0 '), e=d.all.tags( 'div ') 
for (i=0;i <e.length;i++)e[i].style.display=(n==1? 'block ': 'none ') 
e=d.all.tags( 'p ') 
for (i=0;i <e.length;i++){if(ChkExist(e[i].children[1].value))e[i].children[0].innerText=(n==1? '- ': '+ ')} 


function ExCloItem(){ 
var c,e=event.srcElement, p=e.parentElement.children 
if(e.myHref!= ' '){ 
alert((e.myTarget!= ' '?e.myTarget: 'window ')+ '.location= '+e.myHref) //要改成連接到某頁只需把alert改成eval即可 
//如果你不想觸發展合動作只需在這里加return; 

else{window.status= 'no href '}; 
if(selectItem!=null)selectItem.className= 'NoSelect '; 
e.className= 'SelectEd ' 
selectItem=event.srcElement; 
if(c=document.all(e.value)){ 
p[0].innerText=(p[0].innerText== '+ '? '- ': '+ ') 
c.style.display=(c.style.display== 'none '? 'block ': 'none ') 
}else{p[0].innerText= '- '} 

function ExCloItem2(){ 
var c,e=event.srcElement, p=e.parentElement.children 
if(c=document.all(p[1].value)){ 
e.innerText=(e.innerText== '+ '? '- ': '+ ') 
c.style.display=(c.style.display== 'block '? 'none ': 'block ') 
}else e.innerText= '- ' 


function OutItem(){ 
var e=event.srcElement 
if(selectItem != ' ')e.className=(selectItem==e? 'SelectEd ': 'NoSelect ') 
else e.className= 'NoSelect ' 


function ChkExist(n){ 
n=parseInt(n) 
if((n <myRs[0][1])||(n> myRs[myRs.length-1][1]))return false 
var a,b,c,x=0, y=parseInt(myRs.length/2), z=myRs.length-1 
while((x!=y)&&(y!=z)){ 
a=myRs[x][1], b=myRs[y][1], c=myRs[z][1] 
if(n==a||n==b||n==c)return true 
if(n> b)x=y; 
else z=y;y=parseInt(x+z); 
y=parseInt((x+z)/2); 

return false; 


function drawTree(n){ 
if(n==0){ 
myRs.sort(compare) 
document.write( ' <p style= "font:10pt;cursor:hand; "> <span onclick= "ExCloAll(1) "> 全部展開 </span> &nbsp;&nbsp; <span onclick= "ExCloAll(0) "> 全部合攏 </span> </p> ') 

if (ChkExist(n)!=true)return 
document.write( ' <div id= " '+n+ ' " style= "font:10pt;cursor:hand; '+(n!=0? 'position:relative;left:20;display:none; ': ' ')+ ' "> ') 
for(var i=0;i <myRs.length;i++){ 
if (parseInt(myRs[i][1])> n)break; 
if (myRs[i][1]==n){ 
document.write( ' <p style= "margin:0pt; "> <span style= "vertical-align:top; " onclick= "ExCloItem2() "> '+(ChkExist(myRs[i][0])? '+ ': '- ')+ '