在html中我建了一个select下拉菜单,然后通过js来操作document节点,给select下拉菜单添加选项,方法如下:var models = document.getElementById("major");
  var results = xmlHttp.responseXML.getElementsByTagName("major_name");
if(results.length>0){
  clearElement("major");
  var option = null;
  option = document.createElement("option");
  option.appendChild(document.createTextNode("-----"));
  models.appendChild(option);
  for(var i=0;i<results.length;i++){
  option = document.createElement("option");
  option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));
  models.appendChild(option);
  }
  }这样我把选项的文字部分给弄出来了,但是我需要设置选项的value值,请问能在这里修改吗?
求指导&………………

解决方案 »

  1.   

     var varItem = new Option(objItemText, objItemValue);      
     models.options.add(varItem);     
      

  2.   

    利用DOM
     
    //得到节点信息
    var cityDom = document.getElementById("subtype");
         //向下拉列表添加内容
        //创建元素
       var city = document.createElement("option");
        //设置其value
        city.setAttribute("value",code);
       //添加显示的文本值
        city.appendChild(document.createTextNode(name));
        //添加到DOM中
        cityDom.appendChild(city);
      

  3.   

    请问这里的value跟<option value="?">hello</option>是对应的吗?还是只是自己随便起的名字就叫value?
      

  4.   

    还有一个问题,我在html表单中有一个下拉菜单,将其提交到servlet,如何用request.getParameter();方法获得其选项。我在那里获得的数据显示出来是null,我认为是在<option>选项中没有设置value值导致的,请问是这样的吗?求解释……菜鸟学习中
      

  5.   

    value是用来标识select具体的选项的,而<option>***</option>中的***是用来显示在页面上的
    如果你的value没有设置值的话,用request.getParameter()只能得到null
      

  6.   

    对啊,我现在接受到的就是null,应该怎么解决啊?
    能够在后面修改其value吗?
      

  7.   

    好了,问题解决了,我用你的方法解决的,应该是版本方面的问题:我在form表单里的select元素中开始只用了一个id="depart",在servlet中调用的时候是无法识别的,只要在select元素中加一个name="depart"就可以兼容了,好纠结的问题啊,谢谢了