<select><option></option></select> 操作

转载请注明来源:https://www.cnblogs.com/hookjc/

function FlySwapSelect(s1,s2,myvars,calldbclick)
{
 var mSel1=s1;
 var mSel2=s2;
 var mThis=this;
 var mVars=myvars.split('|');
 var mCallDbClick=calldbclick;
 mSel1.attachEvent('ondblclick',function(){mThis.SwapOptions(mSel1,mSel2);});
 mSel2.attachEvent('ondblclick',function(){mThis.SwapOptions(mSel2,mSel1);});

 //双击事件的处理
 this.SwapOptions=function(from,to)
 {
  if(from.selectedIndex<0) return;
  var op1=from.options[from.selectedIndex];
  //如果为空
  if(op1.innerHTML=='') return;
  var op2=new Option(op1.text,op1.value);
  var len=to.options.length;
  to.options[len]=op2;
  for(var i=0;i<mVars.length;i++)
   to.options[len].setAttribute(mVars[i],op1.getAttribute(mVars[i]));
  from.options[from.selectedIndex]=null;
  if(mCallDbClick!='')eval(mCallDbClick+'();');
 }
 this.GetSum=function(obj,str)
 {
  var ret=new Array();
  arr=str.split("|");
  for(var n=0;n<arr.length;n++)
   ret[n]=0;
  for(i=0;i<obj.options.length;i++)
  {
   for(var n=0;n<arr.length;n++)
    ret[n]+=obj.options[i].getAttribute(arr[n])*1;
  }
  return ret;
 }
 //根据查询条件筛选
 this.Query=function(sel,where)
 {
  for(i=0;i<sel.options.length;i++)
  {
   t=sel.options[i];
   var ret=eval(where);
   if(ret)
   {
    if(sel.options[i].innerHTML=='')
     sel.options[i].innerHTML=sel.options[i].oldtxt;
   }else
   {
    if(sel.options[i].innerHTML!='')
    {
     sel.options[i].oldtxt=sel.options[i].innerHTML;
     sel.options[i].innerHTML='';
    }
   }
  }
  this.Sort(sel);
 }

排序:
 this.Sort=function(obj)
 {
  var arr = new Array();
  
  var len=obj.options.length;
  for(var i=0; i<len; i++)
  {
   var attrs = new Array();
   for(var n=0;n<mVars.length;n++)
    attrs[n]=obj.options[i].getAttribute(mVars[n]);
   attrs[n]=obj.options[i].getAttribute('oldtxt');
   arr[i]={text:obj.options[i].innerHTML,html:obj.options[i].value,attr:attrs};
  }
  arr.sort(this.SortFun);
  
  for(var i=0; i<len; i++)
  {
   obj.options[i].innerHTML=arr[i].text;
   obj.options[i].value=arr[i].value;
   for(var n=0;n<mVars.length;n++)
    obj.options[i].setAttribute(mVars[n],arr[i].attr[n]);
   obj.options[i].oldtxt=arr[i].attr[n];
  }
 }
 this.SortFun=function(x,y){if(x.text>y.text) return -1; else if(x.text<y.text) return 1;else return 0;}
 this.GetData=function(obj)
 {
  ret='';
  for(i=0;i<obj.options.length;i++)
   ret+=','+obj.options[i].value;
   return ret.substr(1);
 }
}

来源:python脚本自动迁移

posted @ 2020-06-29 11:43  jiangcheng_15  阅读(441)  评论(0编辑  收藏  举报