<script language="jscript">
var tree={
Math: {
Algebra1:new Array("Algebra1_1", "Algebra1_2"), 
Algebra2:new Array("Algebra2_1", "Algebra2_2")
},
Science: {
FifthGrade:new Array("FifthGrade1", "FifthGrade2"),
FirstGrade:new Array("FirstGrade1", "FirstGrade2")
}
}
alert(tree.Math.Algebra1[0])
alert(tree.Science.FifthGrade[1])
</script>

解决方案 »

  1.   

    感谢回复!但
    Math,Algebra 1,Algebra
    Math,Algebra 2,Algebra
    Math,Calculus,Calculus
    Math,Eighth Grade,Reasoning
    Math,Fifth Grade,Algebra
    Science,Fifth Grade,Physical Sciences 
    Science,First Grade,Biology
    这些数据是在一个List里,应该怎么处理呢?
      

  2.   

    clare2003(忘情火):
    数据是怎样定义的?
    您指什么?
    数据是其他人员通过接口提供给我的数据形式是这样的:
    Math,Algebra 1,Algebra
    Math,Algebra 2,Algebra
    Math,Calculus,Calculus
    Math,Eighth Grade,Reasoning
    Math,Fifth Grade,Algebra
    Science,Fifth Grade,Physical Sciences 
    Science,First Grade,Biology
      

  3.   

    其他人员通过接口
     那个接口是怎样的?
    你能读取到那个接口的数据吗?
    传给你的是什么数据类型
    数组?
    字符串?
    还是
    ..
    那个是个什么样的接口
    com接口?
    还是..
    接口的原形是怎样的?
      

  4.   

    这些数据是在一个List里,可以直接使用,格式如下:
    Math,Algebra 1,Algebra
    Math,Algebra 2,Algebra
    Math,Calculus,Calculus
    Math,Eighth Grade,Reasoning
    Math,Fifth Grade,Algebra
    Science,Fifth Grade,Physical Sciences 
    Science,First Grade,Biology
      

  5.   

    一个list里?这概念太模糊了。
    JS里又没有LIST对象,不明白你那是啥意思。
      

  6.   

    哦,数据是在JAVA函数返回的LIST里,我现在想把JAVA函数返回的LIST里的数据放到JS数组中,实现RADIO点击的连动效果,不知道我描述清楚没有?
      

  7.   

    没有描述清楚因为js没有list,你说的到底是什么东西?你说的是java bean??
      

  8.   

    我也晕了,不知道怎么才能描述清楚!
    JAVA中接口函数的原形是这样的:
    public List getAllStrands() {
    return contentDao.getAllStrands();
    }我要在一个JSP页中把这个LIST中的数据,放到JS数组中,实现RADIO点击的连动效果,不知道我描述清楚没有?
      

  9.   

    描述清楚了不过:第一,我不会jsp第二,你不懂web
      

  10.   

    勉强说一下吧js只能用html页面前台的内容java函数只能使用后台的内容来生成前台的内容
      

  11.   

    写的很乱,不过应该有一定的参考价值<HTML>
    <BODY onload='GetOne()'>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var a=new Array()
    a[a.length]=new Array('Math','Algebra 1','Algebra')
    a[a.length]=new Array('Math','Algebra 2','Algebra')
    a[a.length]=new Array('Math','Calculus','Calculus')
    a[a.length]=new Array('Math','Eighth Grade','Reasoning')
    a[a.length]=new Array('Math','Fifth Grade','Algebra')
    a[a.length]=new Array('Science','Fifth Grade','Physical Sciences')
    a[a.length]=new Array('Science','First Grade','Biology')
    function GetOne()
    {
    var str='' var div=document.getElementById('test') for(var i=0;i<a.length;i++)
    {
    if(str.indexOf((a[i])[0])>-1)
    {
    //do nothing
    }
    else
    {
    str+=a[i][0]+','
    }
    } var radio1=str.substring(0,str.length-1).split(',') for(var i=0;i<radio1.length;i++)
    {
    div.innerHTML+=("<input type=radio value='"+radio1[i]+"' name='radio1' onclick='GetTwo(this)'>"+radio1[i])
    }
    }
    function GetTwo(obj)
    {
    var v=obj.value
    var div=document.getElementById('test') div.innerHTML=""
    var str='' for(var i=0;i<a.length;i++)
    {
    if(a[i][0]==v)
    {
    if(!str.indexOf((a[i])[2]))
    {
    //do nothing
    }
    else
    {
    str+=a[i][2]+','
    }
    }
    } var radio2=str.substring(0,str.length-1).split(',') for(var i=0;i<radio2.length;i++)
    {
    div.innerHTML+=("<input type=radio value='"+radio2[i]+"' name='radio2' onclick='GetThree(this)'>"+radio2[i])
    }
    }function GetThree(obj)
    {
    var v=obj.value
    var div=document.getElementById('test')
    div.innerHTML=""
    var str='' for(var i=0;i<a.length;i++)
    {
    if(a[i][2]==v)
    {
    if(!str.indexOf((a[i])[1]))
    {
    //do nothing
    }
    else
    {
    str+=a[i][1]+','
    }
    }
    } var radio3=str.substring(0,str.length-1).split(',') for(var i=0;i<radio3.length;i++)
    {
    div.innerHTML+=("<input type=radio value='"+radio3[i]+"' name='radio3'>"+radio3[i])
    }
    }//-->
    </SCRIPT>
    <div id='test'></div>
    </BODY>
    </HTML>
      

  12.   

    是三级联动radio吧。组织好数据结构也不难的,有空我写一个给你吧。
      

  13.   

    呵呵,刚才看了一下,用select的无限级联动是比radio难度小了很多的。因为select本身就有容器,而radio需要用div等容器来存html的字符串,而且还要判断checked,我等会给你一个三级的吧,无限级的我就不想再去想那么多了。
      

  14.   

    多谢老大,三级就够了,客户要求用radio,没办法啊。
      

  15.   

    代码写出来了,你自己看看改改吧,稍微有些乱。等会有时间我再改改<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document - http://www.never-online.net </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="never-online, blueDestiny">
    <META NAME="Keywords" CONTENT="never-online, blueDestiny">
    <META NAME="Description" CONTENT="http://www.never-online.net">
    <style>
    body, pre
    {
    font-size: 0.9em;
    font-family: verdana;
    }
    .copyright
    {
    text-align: center;
    font-size: 1em;
    }
    </style>
    </HEAD>
    <BODY>
    <script language="javascript">
    <!--//aDs = [ [id, pid, value, txt] ];
    var aDs = [
    [1, 0, 'v1', 't1'],
    [2, 1, 'v2', 't2'],
    [3, 1, 'v3', 't3'],
    [4, 3, 'v3', 't4'],
    [5, 3, 'v4', 't5'],
    [6, 2, 'v6', 't6']
    ];
    //aRs = [ ['container_uid','radioGroup1'] ];
    var aRs = [
    ['rs_first', 'g_f'],
    ['rs_second', 'g_s'],
    ['rs_third', 'g_t']
    ];function build_rg (name, val, txt, idx, id) {
    var sHtml = "<input type=\"radio\" name=\"" +name+ "\" value=\"" +val+ "\" val=\"" +id+ "\" onclick=\"change_grp(" +idx+ ")\">"
    + "" +txt+ "";
    return sHtml;
    };function build_rs (idx) {
    var sHtml = "";
    for (var i=0; i<aDs.length; i++) {
    if (aDs[i][1] == 0)
    sHtml += build_rg(aRs[0][1], aDs[i][2], aDs[i][3], 0, aDs[i][0]);
    } build_html(0, sHtml);
    change_grp(idx);
    };function change_grp (idx) {
    function iChange(idx) {
    var sHtml = "";
    var cnt = 0;
    for (var i=idx; i<aDs.length; i++) {
    if (idx==0) {
    continue;
    }
    else {
    var o = document.getElementsByName(aRs[idx-1][1]);
    for (var j=0; j<o.length; j++) {
    if (o[j].checked) {
    val = o[j].getAttribute("val");
    }
    else {
    val = o[0].getAttribute("val");
    }
    }
    }
    if (aDs[i][1] == val) {
    sHtml += build_rg(aRs[idx][1], aDs[i][2], aDs[i][3], idx, aDs[i][0]);
    cnt++;
    }
    }
    if (cnt==0) sHtml = '没有数据';
    build_html(idx, sHtml);
    }
    for (var i=idx+1; i<aRs.length; i++) {
    eval("iChange(" +i+ ")");
    }
    };function build_html (idx, sHtml) {
    if (!getById(aRs[idx][0])) return;
    getById(aRs[idx][0]).innerHTML = sHtml;
    };var getById = document.getElementById;
    -->
    </script><div id='rs_first'></div>
    <div id='rs_second'></div>
    <div id='rs_third'></div><SCRIPT LANGUAGE="JavaScript">build_rs(0)</SCRIPT><h4 class="copyright"> Power By blueDestiny, never-online, <a href="http://www.never-online.net">http://www.never-online.net</a> </h4>
    </BODY>
    </HTML>
      

  16.   

    只用把数据代进去就行了的。aDs和aRs里面是数组。

    aDs = [ [id, pid, radio的值, radio后面的字符] ];
    aRs = [ ['div容器的ID名','radiogroup的名字自己取,唯一的就行了'] ];
    //aDs = [ [id, pid, value, txt] ];
    var aDs = [
    [1, 0, 'v1', 't1'],
    [2, 1, 'v2', 't2'],
    [3, 1, 'v3', 't3'],
    [4, 3, 'v3', 't4'],
    [5, 3, 'v4', 't5'],
    [6, 2, 'v6', 't6']
    ];
    //aRs = [ ['container_uid','radioGroup1'] ];
    var aRs = [
    ['rs_first', 'g_f'],
    ['rs_second', 'g_s'],
    ['rs_third', 'g_t']
    ];
      

  17.   

    十分感谢BlueDestiny老大的指点,但我太菜了,还是不太懂,还请再讲解一下:
    要怎么把数据代进去啊?
    aDs = [ [id, pid, radio的值, radio后面的字符] ];
    id就是序号吧?那pid呢?是上级的序号吗?
    aRs = [ ['div容器的ID名','radiogroup的名字自己取,唯一的就行了'] ];
    ‘div容器的ID名’这个div容器必须有么?
      

  18.   

    aDs = [ [id, pid, radio的值, radio后面的字符] ];
    id就是序号吧?那pid呢?是上级的序号吗?
    -----------------------
    是的
    aRs = [ ['div容器的ID名','radiogroup的名字自己取,唯一的就行了'] ];
    ‘div容器的ID名’这个div容器必须有么?
    --------------------------div容器就是指你在页面上写的
    <div id='容器1'></div>
    <div id='容器2'></div>
    .....
    这里就写
    aRs = [ '[容器1','radiogroup1'] ];
    aRs = [ '[容器2','radiogroup2'] ];
    ....