好奇怪阿remove不能全部删掉select中的option,内有代码,高人进来看一下,我觉得代码没有问题,奇怪的结果

pageup 2004-10-08 01:18:38
function ChangeJobItem(objThis){
switch(objThis.selectedIndex){//listbox选择一项,总共两项
case 0:
ClearJobItem();
break;
case 1:
AddFacultyJob();
break;
}
}
function ClearJobItem(){//清除id为job的listbox option,全部清除
var optionCount;
var i;
optionCount=job.options.length;
for(i=0;i<optionCount;i++){
job.remove(i);
}
job.add(new Option("请选择职位"));
}
function AddFacultyJob(){//添加job的option
ClearJobItem();
job.add(new Option("室内设计师"));
job.add(new Option("模型制作人"));
job.add(new Option("平面设计师"));
job.add(new Option("网络前台设计师"));
job.add(new Option("网络后台设计师"));
job.add(new Option("动画师"));
}
现在先选者type的selectedIndex为1得项时AddFacultyJob()正常输出
之后选者type为selectedIndex为0得项应该得出清除job所有项加入“请选择职位”的结果,可是得到的结果为”室内设计师““平面设计师““网络后台设计师““请选者职位“等,remove(i)为什么没有正确删除option呢?

能够正确返回option的个数,我跟踪了options.length的值是正确的,for循环的次数也是对的,就是不知道为什么有些没有被删掉,而且是隔一个删

问题是先case 1再case 0的时候出现的
...全文
224 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
blues-star 2004-10-08
  • 打赏
  • 举报
回复
因为你的options总是在变化的,所以,总把最开始的一个清除就可以删除所有。
blues-star 2004-10-08
  • 打赏
  • 举报
回复
for(i=0;i<optionCount;i++){
job.remove(i);
}

->

for(i=0;i<optionCount;i++){
job.remove(0);
}

87,955

社区成员

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

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