mutilple select 左右移动的问题(js) 适合排序,兼容firefox

function removeSrcToTarget(srcId,targetId){
 var sourceElement = document.getElementById(srcId);
 var targetElement = document.getElementById(targetId);
 for(var i = 0;i<sourceElement.length;i++){
  var _element = sourceElement[i];
  if(_element.selected){
   //var oOption = document.createElement("OPTION");
   //targetElement.add(oOption);
   //oOption.innerText = _element.text;
   //oOption.value = _element.value;
   targetElement.options.add(new Option(_element.text,_element.value));
   sourceElement.remove(i);
   i--;//return pre index, so that neighborhood element can also be removed.
  }
 }
 sortMe(sourceElement);
 sortMe(targetElement);
}

//for select control is not surpport sort method, so we can delete-add all of them.
function sortMe(oSel){
 var ln = oSel.options.length;
 var arr = new Array();
 var textArr = new Array(); 
 var map = new Map();
 
 for (var i = 0; i < ln; i++)
 {
   arr[i] = oSel.options[i].value;
   textArr[i] = oSel.options[i].text;
   map.put(arr[i],textArr[i]);
 }
 
 arr.sort();
 
 while (ln--)
 {
   oSel.options[ln] = null;
 }
 
 for (i = 0; i < arr.length; i++)
 {
  oSel.options.add(new Option( map.get(arr[i]),arr[i]));
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值