你如果认为不可能,你就错了!!

zgpp 2001-08-28 04:17:39
我有一个SELECT列表,通过函数清空选择的项,现在的问题是,不能一次清空,要需要若干次!
我的代码是这样的:
for(var i=0;i<sel1.length;i++)
{
if(sel1.options[i].selected)
sel1.options[i]=null;
}
怎么回事呢?不信你试试!
...全文
75 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yukeelau 2001-08-31
  • 打赏
  • 举报
回复
他只要清除选择的项目,你那是全部清除。
Soft21 2001-08-29
  • 打赏
  • 举报
回复
To:yukeelau(玉骐)
可以用for语句的,就看你怎么写了,我上面的代码肯定是可以的,
因为我最开始就得到了Length,变化之后对我没有影响,然后我每次都删掉第一个,一点问题没有!
yukeelau 2001-08-28
  • 打赏
  • 举报
回复
清空循环不能这样写.应该这样写:

var x=0;
while(x<sel1.length)
{
if(sel1.options[x].selected)
{
sel1.options[x]=null;
x--;
}
x++;
}

动态删除 list 的项目时,其 length 是不断的变化的,所以不能用 for语句。

aukw 2001-08-28
  • 打赏
  • 举报
回复
<span id="hello"><select name="kkkk">……</span>
<script language=javascript>
document.all["hello"].innerHTML="<select name='kkkk'></select>";
</script>
//////////////呵呵一下子全干掉了!!
Soft21 2001-08-28
  • 打赏
  • 举报
回复
呵呵,你的代码有问题。
因为它肯定只会清空当前选中的那个Option,因为浏览器是一次性刷新的。
全部清空Select列表的代码如下:
var intLength = sel1.length; // 注意:不能在For循环中用sel1.length
for(var i = 0;i < intLength; i++)
{
sel1.options[0] = null; // 注意:是0,而不是i
}
这样,我们每次都清空第一个就对了。
zgpp 2001-08-28
  • 打赏
  • 举报
回复
你试了吗,事实最可信的。
呵呵……

87,914

社区成员

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

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