转载请注明来源: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脚本自动迁移

<select><option></option></select> 操作的更多相关文章

  1. 让 select 的 option 标签支持事件监听(如复制操作)

    这标题,让option支持事件监听,应该不难的呀,有什么好讲的? 其实还是有的,默认在浏览器代码是无法直接对option标签进行操作的,不仅包括JS事件监听,还是CSS样式设置 查了一些资料,姑且认为 ...

  2. js 操作select和option

    js 操作select和option 1.动态创建select function createSelect(){ var mySelect = document.createElement_x(&qu ...

  3. jQuery获取Radio选择的Value值||两个select之间option的互相添加操作(jquery实现)

    jQuery获取Radio选择的Value值: 1. $("input[name='radio_name'][checked]").val();  //选择被选中Radio的Val ...

  4. jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等

    简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...

  5. vue操作select获取option值

    如何实时的获取你选中的值 只用@change件事 @change="changeProduct($event)" 动态传递参数 vue操作select获取option的ID值 如果 ...

  6. js 操作select和option常见用法

    1.获取选中select的value和text,html <select id="mySelect"> <option value="1"&g ...

  7. jquery的select元素和option的相关操作

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. javaScript的select元素和option的相关操作

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. select标签的相关操作,选中,获取option的值,二级联动

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. AngularJS下拉列表select在option动态变化之后多出了一个错误项的问题

    场景: Select初始化之后,选中select的某个选项 通过AngularJS更新select的选项 错误写法: HTML(使用ng-repeat) <div ng-app="Te ...

随机推荐

  1. BP网络简单实现

    目录 BP算法的简单实现 Linear 全连接层 ReLu MSELoss 交叉熵损失函数 BP算法的简单实现 """ BPnet 简易实现 约定输入数据维度为(N, i ...

  2. <学习opencv> opencv 概述及初探

    目录 Opencv3 当前模块 OpenCV 贡献库(opencv_contrib) OpenCV 头文件 旧式C风格头文件 新式C++风格头文件 例程 DEMO1 - 显示图片 DEMO2 - 视频 ...

  3. HTML网页设计基础笔记 • 【第2章 排列页面内容】

    全部章节   >>>> 本章目录 2.1 音频标签和视频标签 2.1.1 音频标签 2.1.2 视频标签 2.2 列表.div 以及 span 标签 2.2.1 列表标签 2. ...

  4. dart系列之:dart代码最佳实践

    目录 简介 命名规则 import中的顺序 格式化 总结 简介 每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的.如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的便利 ...

  5. 图像数据到网格数据-3——实现Cuberille算法

    前言 这是本博客网格生成算法系列的第三篇,第一篇里面介绍了最为流行的MarchingCubes算法,第二篇中使用新三角形表来对MC算法进行了简化改进,形成了SMC算法.而这篇将介绍一种新的不同与MC算 ...

  6. Centos7下yum安装mydql8

    昨天安装mydql时总是报错缺少插件,虽然最后安装上了,但还是在此记录下 一. 安装centos7系统系统 在选择安装基本环境时,选择基本环境为"网页服务器",昨天我因为选择了&l ...

  7. centos7 安装jdk 脚本

    下载安装包 链接:https://pan.baidu.com/s/10-U54WwoEaCC9Afj58owJA 提取码:jdk8 写如脚本 vi ***.sh #!/bin/bash #instal ...

  8. .Net 线程安全集合

    .Net 提供了基于生产-消费模式的集合类,这些集合对多线程访问安全,定义在System.Collections.Concurrent名称空间中.这个名称空间中包括基础接口IProduceConsum ...

  9. Keil MDK STM32系列(六) 基于抽象外设库HAL的ADC模数转换

    Keil MDK STM32系列 Keil MDK STM32系列(一) 基于标准外设库SPL的STM32F103开发 Keil MDK STM32系列(二) 基于标准外设库SPL的STM32F401 ...

  10. 一条 Git 命令减少了一般存储空间,我的服务器在偷着笑

    元旦不是搭建了一个<Java 程序员进阶之路>的网站嘛,其中用到了 Git 来作为云服务器和 GitHub 远程仓库之间的同步工具. 作为开发者,相信大家都知道 Git 的重要性.Git ...