在使用ajax做级联菜单的部分,二级select的name想用一个参数来表示,代码如下:function updateMenu() {   
  var res=XMLHttpReq.responseXML.getElementsByTagName("res");
  var aes=XMLHttpReq.responseXML.getElementsByTagName("aes");
  var eid=XMLHttpReq.responseXML.getElementsByTagName("eid");  var ttt = eid[0].firstChild.data;  //此处alert能够输出ttt为4  var ddd = "document.all.list"+ttt;  //本意是定义ddd为document.all.list4,但是这样定义的ddd是个字符串
  var list = ddd;

  list.options.length=0; //此处会有问题,list为字符串,没有options属性,此时options is null or not an object
  list.add(new Option("---请选择---",""));   
  for(var i=0;i<res.length;i++){ 
    list.add(new Option(aes[i].firstChild.data,res[i].firstChild.data));   
  }   
}   
问题在上边的代码部分说明了,主要就是,定义的list为字符串,没有options属性。实际上是想让list定义为一个select下拉菜单。怎么样才能让传过来的参数,定义到一个下拉菜单的名称里边呢,请达人帮忙,急!!!

解决方案 »

  1.   

    你的list是什么?
    你首先要获取一个select的DOM对象,然后才可以操作add()方法
      

  2.   

    var list = ddd;
    list.options.length=0; 
    list实际是想定义为一个select下拉菜单的。
    请给出修改代码,谢谢!
      

  3.   

    var list = document.createElement("select")
    list.id = "mySelect";  
      

  4.   


    var ddd = eval("document.all.list"+ttt); 
      

  5.   

    up
    eval一下就变成对象了!
      

  6.   

    eval("document.all.list"+ttt);
    或者
    JSON2.parse("document.all.list"+ttt);