噢,不好意思,去掉alert后确实报错

解决方案 »

  1.   

    应该是你执行的时机不对
    <html>
    <head>
    <script language="javascript">
    function test()
    {var oOption = document.createElement("option");
    oOption.appendChild(document.createTextNode("test"));
    oOption.setAttribute("value","test"); 
    var sel = document.getElementById("select2");
    sel.appendChild(oOption);
    //alert(sel.options.length);   //返回的数值已经包含新添加的项
    sel.options[sel.options.length-1].selected = true; // 报错:无法设置 selected 属性。 未指明的错误}
    </script>
    </head>
    <body >
    <form>
    <select id="select2" name="select2"><option value="22">22</option></select>
    <script>test();</script></form>
    </body>
    </html>
      

  2.   

    楼上的,如果是这么简单的环境就好了,我是用AJAX取回数据后动态填充的,填充后死活选择不了新加项
      

  3.   

    试过了 延迟了5秒都没效果  刚搜索到个文章,说是ALERT或LOAD后再运行添加选择和动态运行的效果完全不一样
      

  4.   

    try
    var oOption = document.createElement("option");
    oOption.appendChild(document.createTextNode("test"));
    oOption.setAttribute("value","test"); 
    var sel = document.getElementById("select2");
    sel.appendChild(oOption);
    alert(sel.options.length);   //返回的数值已经包含新添加的项
    //sel(sel.options.length-1).selected = true; // 报错:无法设置 selected 属性。 未指明的错误  
    //==>
    sel.options[sel.options.length-1].selected = true;
      

  5.   

    //var oOption = document.createElement("option");
    //oOption.appendChild(document.createTextNode("test"));
    //oOption.setAttribute("value","test"); 
    var oOption=new Option("test","test");
    var sel = document.getElementById("select2");
    //sel.appendChild(oOption);
    sel.options.add(oOption);
    //alert(sel.options.length);   //返回的数值已经包含新添加的项
    //sel(sel.options.length-1).selected = true; // 报错:无法设置 selected 属性。 未指明的错误  
    //==>
    sel.options[sel.options.length-1].selected = true;try,而且你没说明你怎么使用ajax,没办法测试
      

  6.   

    setTimeout(function() { 
        $("#name").val("11"); //指定当前值为11的这选中项;
    }, 1);设置一个timeout就可以了