怎么往下拉框中插入数据才快

懒散的猿鼋 2009-11-12 09:31:31
ret----> 100001,北京001|100002,北京002|,200001,南京001|...........很长有将近10000个插入下拉框中,用下面方法要将近一分钟,怎么才能更快?
var ops = ret.split("|");
for (var j = 0; j < ops.length; j++) {
var op = ops[j];
var ss = op.split(",");
var oOption = document.createElement("OPTION"); //创建一个OPTION节点
obj.options.add(oOption); //将节点加入region_name选项中
oOption.innerText = ss[1]; //设置选择展示的信息
oOption.value = ss[0]; //设置选项的值
}
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudgamer 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yangf1984 的回复:]
有一种方法,是逐步加载,也就是向下拉动时才显示后面的对象,或鼠标滑轮下动,但不知道怎么实现,有没高手指教
[/Quote]

这个不是用在下拉框的
是用在图片或html内容的
cloudgamer 2009-11-12
  • 打赏
  • 举报
回复
outerHTML 应该最快
要兼容的话用innerHTML模拟
懒散的猿鼋 2009-11-12
  • 打赏
  • 举报
回复
有一种方法,是逐步加载,也就是向下拉动时才显示后面的对象,或鼠标滑轮下动,但不知道怎么实现,有没高手指教
foolbirdflyfirst 2009-11-12
  • 打赏
  • 举报
回复
<select id="list">
</select>
<script type='text/javascript'>
(function(){
var list = document.getElementById("list"),op=[];
for(var i=0,j=10000;i<j;i++){
op[op.length] = "<option value='"+i+"'>"+i+"</option>";
}
if(list.outerHTML){
list.outerHTML = list.outerHTML.replace(/></,">"+op.join('')+"<");
}
else if(list.innerHTML)
{
list.innerHTML = op.join('');
}
})()
</script>
Click_Me 2009-11-12
  • 打赏
  • 举报
回复

for (var i = 0; i < 10000; i++) { sel.options[i].text = sel.options[i].value = defenVal; }

这样会快些 但10000个下拉框...
natineprince 2009-11-12
  • 打赏
  • 举报
回复
听说把ops.length放到临时变量中会有更好的效果.

87,994

社区成员

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

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