请教大虾?这个javascript程序的效率 试试srcList不要在循环内逐个删除option。循环结束后,使用srcList.innerHTML=""清除效率较高。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以的啊。我一向都是这样清下拉框的。以下是我刚刚测试过的:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><select name="myselect"> <option value="1">a</option> <option value="2">b</option> <option value="3">c</option></select><input type="button" name="Submit" value="按钮" onClick="myselect.innerHTML=''"></body></html> for(var i=(srclen-1);i>=0;i--) { if ((srcList.options[i] != null) && (srcList.options i].selected==true)) { destList.options[destlen] = new Option(srcList.options[i].text); destlen++; srcList.options[i] = null; } } } 中把 srcList.options[i] = null;提出来改成srcList.innerHtml="";节约很多次操作肯定会快一些的。 谢谢各位大虾指点!速度是提高了不少,但是对于9000个option花费的时间为2分钟,还是比较慢!有没有更好的方法?再有: 我在目标的select中显示的是倒序的(与用户在srcList中的select中的选择顺序是相反的),如何解决?(我用一个中间的select做一次装换可以,即两次倒序,但是时间花费时间一次的两倍,速度没有提高啊!) http://fason.nease.net/samples/js/addoption.html1.用DOM来添加 总共用了2804ms2.另一种常用方法 总共用了2564ms3.用HTML(快速添加方法) 总共用了80ms weigong(猥公) 52juanjuan(Fibona) 大虾: 你的方法与我的要求不符,我需要的是多次的添加,不是一次,你的方法只适合一次添加 srcList.length=0 用这个清除 hcsunjun(小子) 我需要多次添加! 解析Select的innerHtml,用正则试试,提取包含selected的<......>,添加到另一个Select的后面。一个9K左右的字符串操作。这是应付多选的情况,如果是单选就是select.options(select.selectedIndex) to shangwg(shangwg): 能否说得清楚一点! >>有9000个option对象是否需要重新考虑你的做法?是否要代替的方法?说出你要做的是什么.或许大家能给你一个好的思路. 9000个option对象?分级联动吧。还有js的假数组很慢,比vbscript性能差很多http://community.csdn.net/Expert/topic/3134/3134829.xml?temp=.1851618 www.adr.gov.cn/download/panyuguang/area/DanWtj.aspwww.adr.gov.cn/download/panyuguang/area.rar 这是浏览器问题还是程序问题 哪错了呢? 增加输入框的问题,在线问 求教用JS固定表格的编号 js动态删除行 如何利用控制图片的大小 CSDN的“显示导航”是怎么实现的 框架页中左框架页事件传Session到右边的页,右边框架页刷新显示的问题 右键显示自己定制的菜单,如何实现。(首先实现者100分) 用js访问对象?!帮帮忙!~~~~ 高手請進 框架嵌套问题,如果访问某个框架的javascript函数?
以下是我刚刚测试过的:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head><body>
<select name="myselect">
<option value="1">a</option>
<option value="2">b</option>
<option value="3">c</option>
</select>
<input type="button" name="Submit" value="按钮" onClick="myselect.innerHTML=''">
</body>
</html>
{
if ((srcList.options[i] != null) && (srcList.options i].selected==true))
{
destList.options[destlen] = new Option(srcList.options[i].text);
destlen++;
srcList.options[i] = null;
}
}
} 中把
srcList.options[i] = null;
提出来改成
srcList.innerHtml="";
节约很多次操作肯定会快一些的。
总共用了2804ms
2.另一种常用方法 总共用了2564ms
3.用HTML(快速添加方法) 总共用了80ms
你的方法与我的要求不符,我需要的是多次的添加,不是一次,你的方法只适合一次添加
用这个清除
提取包含selected的<......>,添加到另一个Select的后面。一个9K左右的字符串操作。
这是应付多选的情况,如果是单选就是select.options(select.selectedIndex)
还有js的假数组很慢,比vbscript性能差很多
http://community.csdn.net/Expert/topic/3134/3134829.xml?temp=.1851618
www.adr.gov.cn/download/panyuguang/area.rar