function AddOption(BuMen_Id, BuMen_Name) {    var BuMen_ID = "";
    var BuMen_NAME = "";     $("#BenXiaoZuoZhe_BuMen_0").empty();
    var html = "";
    for (var i = 0; i < BuMen_Id.length; i++) {        BuMen_ID = BuMen_Id[i].substring(1, (BuMen_Id[i].length - 1));
        BuMen_NAME = BuMen_Name[i].substring(1, (BuMen_Name[i].length - 1));
        html += "<option value=\"" + BuMen_ID + "\">" + BuMen_NAME + "</option>";
    }
    $(html).appendTo("#BenXiaoZuoZhe_BuMen_0");
    
    alert(html);
}以上是js代码,参数:BuMen_Id,BuMen_Name分别为传过来作为value和text的数组,
用for循环解析后,形成一个这样的字符串:<option value="SD001T0501">软件工程系</option><option value="SD001T0502">计科系02</option><option value="SD001T0503">计科系03</option>最后一句alert出的语句。前台:
 <td style="text-align: center">
             <select name="BenXiaoZuoZhe_BuMen_0" runat="server">
             </select>
  </td>我试了很多次,
方法:document.form1.BenXiaoZuoZhe_BuMen_0.options.add(new Option(BuMen_ID, BuMen_NAME));没用,行不通。前台name改为id不行,前台用
<asp:DropDownList ID="BenXiaoZuoZhe_BuMen_0" runat="server">
</asp:DropDownList>也不行,大家帮我看看是哪个地方出了问题??搞了一晚上了

解决方案 »

  1.   

    js是否在页面dom加载完成后调用
      

  2.   

    $(html).appendTo("#BenXiaoZuoZhe_BuMen_0");
    前台需要的id没有,应该设置id,不是name
      

  3.   

    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>jquery 向下拉单添加选项问题</title>
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
    </head>
    <body>
    <table>
    <tr> 
    <td style="text-align: center">
                  <select id="BenXiaoZuoZhe_BuMen_0"></select>
       </td>
       </tr>
       </table>
       <script language="javascript">
    function AddOption(BuMen_Id, BuMen_Name) 
    {
        var BuMen_ID = "";
        var BuMen_NAME = ""; 
        $("#BenXiaoZuoZhe_BuMen_0").empty();
        var html = "";
        for (var i = 0; i < BuMen_Id.length; i++) {

            BuMen_ID = BuMen_Id[i].substring(0, (BuMen_Id[i].length));
            BuMen_NAME = BuMen_Name[i].substring(0, (BuMen_Name[i].length));
            html += "<option value=\"" + BuMen_ID + "\">" + BuMen_NAME + "</option>";
        }
        $("#BenXiaoZuoZhe_BuMen_0").append(html);    
        alert(html);
    }
    var BuMen_Id = new Array('SD001T0501','SD001T0502','SD001T0503');
    var BuMen_Name = new Array('软件工程系','计科系02','计科系03');
    window.onload=AddOption(BuMen_Id,BuMen_Name);
    </script>
    </body>
    </html>
    你可以用这段代码试试,我调试过,可行的。
      

  4.   

    append()  向匹配的元素内部追加内容。
    appendTo()  向匹配的元素内部追加内容。
      

  5.   

    http://www.w3school.com.cn/jquery/index.asp
    这个网址可以参考学习下
      

  6.   

    看清楚你的代码,方法的两个参数BuMen_Id, BuMen_Name
    但是初期的时候
    var BuMen_ID = "";
    var BuMen_NAME = ""; 
    你又将参数的值清空了。
    然后
    for (var i = 0; i < BuMen_Id.length; i++) 
    你认为会是什么结果呢?
      

  7.   

    做了一个简单的append可以参照一下
    <body>
    <select></select>
    <button>addOption</button><script language="javascript">
    val i = 0;
    $("button").click(function(){
    $("select").append("<option value=" + i +">" + i+++"</option>");
    });
    </script>
    </body>
      

  8.   


    这个我试了啊,可是还是不行,jquery-1.3.2.min.js引用也改到本地了,可是就是不动,我同一个界面里面还有用同一种方法想div里面添加代码的,那个行得通,这个就是不干,这到底是肿么了!?
      

  9.   


    大小写不同啊,js对此是敏感的。我得出的语句
    <option value="SD001T0501">软件工程系</option>
    <option value="SD001T0502">计科系02</option>
    <option value="SD001T0503">计科系03</option>
    是调试出来的,这个没有问题