<select id="s1">
   <option>所有省</option>
</select>当我点击该控件后就将所有省份显示出来。请问这样怎样 实现呢?
我从服务器那边取出数据function getProviceBack(obj, text) {
    if (text != null && text.length > 4) {
        var json = eval(text);
        var item;
        var str = '<option>所有省份</option>';
        for (var i = 0; i < json.length; i++) {
            item = json[i];
            str += "<option value='" + item.name + "'>" + item.name + "</option>";
        }
      //  alert(str);
        obj.innerHTML = str;
    }但是这样没用 。而且我是在click事件里加载的

解决方案 »

  1.   

    这样写:
    (select好像不能用innerHTML我以前用也不管用) :for (var i = 0; i < json.length; i++) {
                item = json[i];
                //str += "<option value='" + item.name + "'>" + item.name + "</option>";
                obj.options.add(new Options(item.name,item.name));
            }
          //  alert(str);
            //obj.innerHTML = str;
      

  2.   


    obj.options.add(new [color=#FF0000]Option
    (item.name,item.name));
    [/color]
      

  3.   

    obj.options.add(new Option(item.name,item.name)); 
      

  4.   

    不太明白需要什么方案,你点击的时候判断select的length,如果大于1就不加载 了,否则就执行上面的代码不就行了
      

  5.   


    谁说的 select不能用innerHTML?
      

  6.   

    就是我第一次点击的时候 也好像 是已经加载那样。现在第一次点击它 只有一个 option.
    然后它就返回拉。当我再次点击的时候它就正常拉
      

  7.   

    在ie7 ie8下。。select object的 innerHTML有Bug
      

  8.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title> new document </title> </head> <body>
    <select id="list">
    </select>
    <script type="text/javascript">
    <!--//测试数据
    var json = [
    {"name": "beijing"},
    {"name": "shanghai"},
    {"name": "tianjin"},
    {"name": "chengdu"},
    {"name": "yunnan"}
    ];
    function getProviceBack(obj, json) {
        if (json != null && json.length > 4) {
            var item, op = ['<option>所有省份</option>'];
            for (var i = 0; i < json.length; i++) {
    op[op.length] = "<option value='"+json[i].name+"'>"+json[i].name+"</option>";
            }
            if(obj.outerHTML){
    obj.outerHTML = obj.outerHTML.replace(/></,">"+op.join('')+"<");
    }
    else if(obj.innerHTML)
    {
    obj.innerHTML = op.join('');
    }    }
    }
    getProviceBack(document.getElementById('list'), json);
    //-->
    </script>
     </body>
    </html>
      

  9.   

    BUG: Internet Explorer Fails to Set the innerHTML Property of the Select Objectfunction fill_select1() {     for(var i=0; i < 100; i++) {
                select1.options[i] = new Option(i,i);
            }
    } function fill_select2() {         var sOpts = "<SELECT>";
            for (var i=0;i<100;i++)
            {
                sOpts += '<OPTION VALUE="' + i + '">' + i + '</OPTION>\n';
            }
            select2.outerHTML = sOpts  + "</SELECT>";
    } function fill_select3() {     for(var i=0; i < 100; i++) {
               var oOption = document.createElement("OPTION");
               oOption.text="Option:  " + i;
               oOption.value=i;
               document.all.select3.add(oOption)
            }
    }FROM:http://support.microsoft.com/kb/276228