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]));
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章