jquery appendTo 方法不能立刻生效??

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

谢谢
...全文
352 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
码之魂 2011-01-31
  • 打赏
  • 举报
回复
页面加载完毕,再执行你的代码就没问题了.
ttfseiko1 2011-01-30
  • 打赏
  • 举报
回复
let me see
shan1119 2010-02-08
  • 打赏
  • 举报
回复
<!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>
shan1119 2010-02-08
  • 打赏
  • 举报
回复
<!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>
chrome_ 2010-02-08
  • 打赏
  • 举报
回复
IE的问题,没办法,只能用setTimeout(function(){
//dosomething
},0)
zengtan1021 2010-02-08
  • 打赏
  • 举报
回复
dom渲染是要时间的. 更好的办法就是setTimeout(function(){}, 0). 基本没影响
rjzou2006 2010-02-08
  • 打赏
  • 举报
回复
$(function(){
$(" <option>")
.attr("value", '值1')
.text("选项1")
.appendTo("#sel1");
});

立刻生效,不论任何浏览器
eduyu 2010-02-08
  • 打赏
  • 举报
回复
$(function(){
$("<option>")
.attr("value", '值1')
.text("选项1")
.appendTo("#sel1");
});

立刻生效,不论任何浏览器
yqzq 2010-02-08
  • 打赏
  • 举报
回复
to chrome_, zengtan1021
我用 setTimeout (XX, 0) 也不行
得延时300以上才行。。。
请问有啥可靠的方法没??

谢谢

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧