我是这样改的,你看行吗?你的问题主要出在你使用了全局变量tree,而tree应该作为递归函数中的局部变量,该程序很有新意,只不过递归有稍许问题,我改动了两处能够显示结果,下面是我改了后的文件清单:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
var allType = new Array();
//数组的格式说明
//*********************************************************************//alltype[] = new Array("自身ID" ,"父ID" , "自身名字" , "伸缩排版符");//*******************************************************************//奥迪的所有品牌
allType[0] = new Array( "3", "2", "A4", "--");
allType[1] = new Array( "4", "2", "A6", "--" );
allType[2] = new Array( "5", "2", "新A4", "--");
allType[3] = new Array( "6","2", "新A6", "--");
//奥迪A4的型号
allType[4] = new Array( "7", "3", "04款", "----");
allType[5] = new Array( "8", "3", "03款", "----");
allType[6] = new Array( "9", "3", "05款", "----");
//奥迪A6的型号
allType[7] = new Array( "10", "4", "04款", "----");
typeNO = allType.length;
//var tree = "";function getTree( PID )
{
var tree="";
var i;
for (i = 0 ;i < typeNO ; i++)
{
if (allType[i][1] == PID )
{
tree += "<div>";
tree += allType[i][3];
tree += allType[i][2];
tree += "</div>";
tree+=getTree( allType[i][0] );
}
}
return tree;
}document.write( getTree( 2 ) );
</script><body>
</body>
</html>
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
var allType = new Array();
//数组的格式说明
//*********************************************************************//alltype[] = new Array("自身ID" ,"父ID" , "自身名字" , "伸缩排版符");//*******************************************************************//奥迪的所有品牌
allType[0] = new Array( "3", "2", "A4", "--");
allType[1] = new Array( "4", "2", "A6", "--" );
allType[2] = new Array( "5", "2", "新A4", "--");
allType[3] = new Array( "6","2", "新A6", "--");
//奥迪A4的型号
allType[4] = new Array( "7", "3", "04款", "----");
allType[5] = new Array( "8", "3", "03款", "----");
allType[6] = new Array( "9", "3", "05款", "----");
//奥迪A6的型号
allType[7] = new Array( "10", "4", "04款", "----");
typeNO = allType.length;
//var tree = "";function getTree( PID )
{
var tree="";
var i;
for (i = 0 ;i < typeNO ; i++)
{
if (allType[i][1] == PID )
{
tree += "<div>";
tree += allType[i][3];
tree += allType[i][2];
tree += "</div>";
tree+=getTree( allType[i][0] );
}
}
return tree;
}document.write( getTree( 2 ) );
</script><body>
</body>
</html>
下面是显示的结果。
--A4
----04款
----03款
----05款
--A6
----04款
--新A4
--新A6
俺以前从没用过递归,这是第一次,对递归真得不是很明白。
以后努力。
再次严重感谢。