我们有时候需要清除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;
这样就可以一次清除