`
CN.Silva...
  • 浏览: 46539 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Javascript中清除Select的Option的问题

阅读更多
我们有时候需要清除Select控件中的Options集合下的值,
我在网上找了一下,大部分采用的是
obj = document.getElementById("drp"); ///drp是select控件的ID值
for(i=0 ; i< obj.options.length ; i++)
obj.options[i] = null;

但这种方法好像不能完成清空操作的。
我测试了几次,如果我有0到8这几个数,我运行一次清除后,发现1,3,5,7还是存在的,再点击一次清除则只存在3,7。每点一次,减少一半。
一开始想不通为什么会这样,后来想可能是这样的:
由于obj.options.length是随着用户的obj.options[i] ] = null;操作一直的递减的。
所以当删除到第四个的时候,i=4, obj.options.length也等于4,所以就退出循环,以至于只删除了一半。

因此正确的写法是从后面开始删除
obj = document.getElementById("drp"); ///drp是select控件的ID值
for(i=obj.options.length-1 ; i>= 0 ; i--)
obj.options[i] = null;

这样就可以一次清除

应该还有一种方法,就是把for循环中的obj.options.length用一个变量替代,在循环之前给这个变量赋值
分享到:
评论
1 楼 hankqin 2011-08-14  
document.getElementById("Select1").options.length=0;

相关推荐

Global site tag (gtag.js) - Google Analytics