var menu=new Array();
<%
SchoolInfo schoolInfo = (SchoolInfo)request.getAttribute("schoolInfo");String name = schoolInfo.getSchoolName();
ArrayList a = new ArrayList();
a.add("0,官庄中学");
a.add("0,官庄完全小学");
setMenu(a);
%>
  menu[0] ="0"+","+"<%=name%>";
  alert("<%=name%>");
<%! 
String schoolName = "";
int count = 0;
public void setMenu(List list){for(int i=0;i<list.size();i++){
//schoolName = ((SchoolInfo)list.get(i)).getSchoolName();
//System.out.println("count:"+count);
//System.out.println("name:"+schoolName);
schoolName = (String)list.get(i);
%>menu[menu.length] = "<%=schoolName%>";
alert(menu.length);
alert("<%=schoolName%>");
<%!
//if(((SchoolInfo)list.get(i)).getSchools().size()!=0){
// setMenu(((SchoolInfo)list.get(i)).getSchools().get(i)); 
//}
count++;
}
}
%>
我用上面的方法转换值javascript里的数组只能得到最后一个值"官庄完全小学" 请问我该怎么解决? 困了我好半天了请高手指点对javascript也不熟 第1次用它做树!

解决方案 »

  1.   

    menu[<%=i%>] = "<%=schoolName%>";
      

  2.   

    试过了还是不行 menu得到的总是JAVA List数组的 最后一个值?
      

  3.   

    <script>
    <%
    ArrayList a = new ArrayList();
    a.add("0,官庄中学");
    a.add("0,官庄完全小学");
    %><%
    String schoolName = "";
    for(int i=0;i<a.size();i++){
    if(i!=a.size()-1)
    schoolName += "'"+(String)a.get(i)+"',";
    else
    schoolName += "'"+(String)a.get(i)+"'";
    }
    out.print("var menu=new Array("+schoolName+");");
    %>
    alert(menu[0]);
    alert(menu[1]);
    </script>
      

  4.   

    你把java数据读到页面,隐藏,然后用javascript去读页面这个隐藏值、这样就是两个代码分离了,思路是不是更清晰一点了
      

  5.   

    恩,同意楼上,js和java的代码应分离开