代码改变世界

js对于Select的删除操作时需要注意的问题

2007-03-08 15:42  迷路中的路人甲  阅读(885)  评论(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
--
     } 
    } 
}