我用 appendTo  方法给 select里 添加了两条 option
为什么不能立刻设置对应的option
我加了一个 setTimeout 延时了1000,就可以了
请问这是为什么,有什么更好的解决方法吗?谢谢

解决方案 »

  1.   

    dom渲染是要时间的. 更好的办法就是setTimeout(function(){}, 0). 基本没影响
      

  2.   

    IE的问题,没办法,只能用setTimeout(function(){
    //dosomething
    },0)
      

  3.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
     
    <script>
    window.onload = (function(){
        $("button").click(function(){
            $("<option value="+($("#sel1 option").length+1)+">"+($("#sel1 option").length+1)+"</option>").appendTo($("#sel1"));
            
        });
    });
    </script></head>
    <body>
    <select id=sel1 onchange="tbl1.className=('c'+this.value);">
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    </select>
    <button>add</button>
    </body>
    </html>
      

  4.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
     
    <script>
    window.onload = (function(){
        $("button").click(function(){
            $("<option value="+($("#sel1 option").length+1)+">"+($("#sel1 option").length+1)+"</option>").appendTo($("#sel1"));
            alert($("#sel1 option:last").text());
            $("#sel1 option:last").text("test");
            alert($("#sel1 option:last").text());
            
        });
    });
    </script></head>
    <body>
    <select id=sel1 onchange="tbl1.className=('c'+this.value);">
    <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    </select>
    <button>add</button>
    </body>
    </html>
      

  5.   

    to chrome_, zengtan1021
    我用 setTimeout (XX, 0) 也不行
    得延时300以上才行
    请问有啥可靠的方法没??谢谢
      

  6.   

    $(function(){
    $("<option>")
    .attr("value", '值1')
    .text("选项1")
    .appendTo("#sel1"); 
    });立刻生效,不论任何浏览器
      

  7.   

    $(function(){
    $(" <option>")
    .attr("value", '值1')
    .text("选项1")
    .appendTo("#sel1");
    });立刻生效,不论任何浏览器