js对于Select的删除操作时需要注意的问题
2007-03-08 15:42 迷路中的路人甲 阅读(889) 评论(0) 编辑 收藏 举报今天遇到一个比较郁闷的问题,两个select选择框用js来进行中间内容的左右移动操作,本来好用了,但是加上异步筛选数据以后,只要执行操作就会将搜索填充的那个select删除掉了,最后终于找到解决办法了;
function SelItem(sel_source, sel_dest)
{
//首先拷贝所有项目到目标
var sel_source_len = sel_source.length;
for (var i=0; i<sel_source_len; i++)
{
if(sel_source.options[i].selected)
{
var SelectedText = sel_source.options[i].text;
var SelectedValue = sel_source.options[i].value;
sel_dest.options.add(new Option(SelectedText,SelectedValue));
sel_source.options[i].text="-";
i++;
}
}
for(var i=0;i<sel_source_len;i++)
{
if(sel_source.options[i].text=="-")
{
sel_source.removeChild(sel_source.options[i]);
//sel_source.options[i].remove; 之前用的是这种方式删除,好像在用异步数据重新填充以后,对DOM作了改变,导致这样的删除出错,最后选中上面的DOM操作方式就没问题了;
i--;
sel_source_len--;
}
}
}
{
//首先拷贝所有项目到目标
var sel_source_len = sel_source.length;
for (var i=0; i<sel_source_len; i++)
{
if(sel_source.options[i].selected)
{
var SelectedText = sel_source.options[i].text;
var SelectedValue = sel_source.options[i].value;
sel_dest.options.add(new Option(SelectedText,SelectedValue));
sel_source.options[i].text="-";
i++;
}
}
for(var i=0;i<sel_source_len;i++)
{
if(sel_source.options[i].text=="-")
{
sel_source.removeChild(sel_source.options[i]);
//sel_source.options[i].remove; 之前用的是这种方式删除,好像在用异步数据重新填充以后,对DOM作了改变,导致这样的删除出错,最后选中上面的DOM操作方式就没问题了;
i--;
sel_source_len--;
}
}
}