Javascript中清除Select的Option的问题

来源:互联网 发布:淘宝宝贝图片最佳尺寸 编辑:程序博客网 时间:2024/03/29 17:05

我们有时候需要清除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用一个变量替代,在循环之前给这个变量赋值

Javascript确实不太方便,这种集合对象的清空在.Net通常只要调用该集合对象的Clear方法就行了,在这里却这么麻烦。 

原创粉丝点击