<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脚本自动迁移
<select><option></option></select> 操作的更多相关文章
- 让 select 的 option 标签支持事件监听(如复制操作)
这标题,让option支持事件监听,应该不难的呀,有什么好讲的? 其实还是有的,默认在浏览器代码是无法直接对option标签进行操作的,不仅包括JS事件监听,还是CSS样式设置 查了一些资料,姑且认为 ...
- js 操作select和option
js 操作select和option 1.动态创建select function createSelect(){ var mySelect = document.createElement_x(&qu ...
- jQuery获取Radio选择的Value值||两个select之间option的互相添加操作(jquery实现)
jQuery获取Radio选择的Value值: 1. $("input[name='radio_name'][checked]").val(); //选择被选中Radio的Val ...
- jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等
简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...
- vue操作select获取option值
如何实时的获取你选中的值 只用@change件事 @change="changeProduct($event)" 动态传递参数 vue操作select获取option的ID值 如果 ...
- js 操作select和option常见用法
1.获取选中select的value和text,html <select id="mySelect"> <option value="1"&g ...
- jquery的select元素和option的相关操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- javaScript的select元素和option的相关操作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- select标签的相关操作,选中,获取option的值,二级联动
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- AngularJS下拉列表select在option动态变化之后多出了一个错误项的问题
场景: Select初始化之后,选中select的某个选项 通过AngularJS更新select的选项 错误写法: HTML(使用ng-repeat) <div ng-app="Te ...
随机推荐
- A Tutorial on Energy-Based Learning
目录 概 主要内容 损失函数 Energy Loss Generalized Perceptron Loss Generalized Margin Loss Hinge Loss Log Loss L ...
- Missing Data in Kernel PCA
目录 引 主要内容 关于缺失数据的导数 附录 极大似然估计 代码 Sanguinetti G, Lawrence N D. Missing data in kernel PCA[J]. europea ...
- IT6563|4LAN DP转HDMI 4K60HZ /2.0转换方案|CS5263替代IT6563
IT6563是一款4通道DisplayPort1.2到HDMI 4K60Hz转换器,IT6563结合DisplayPort接收机和HDMI发射机,通过转换功能支持DisplayPort输入和HDMI输 ...
- 编写Java程序,利用List实现报数游戏的实现思路
返回本章节 返回作业目录 需求说明: 利用List实现报数游戏 在控制台输入一个大于3的正整数,该整数表示有多少人,如在控制台输入10,表示有10个人,10个人围成一个圆圈,从序号1开始为这些人依次编 ...
- SpringBoot集成MyBatis-Plus框架详细方法
1.说明 本文详细介绍Spring Boot集成MyBatis-Plus框架的方法, 使用MySQL数据库进行测试, 包括完整的开发到测试步骤, 从一开始的Spring Boot工程创建, 到MySQ ...
- Kylin安装Version1.6.0
Kylin安装,基于版本1.6.0,Kylin只有单机没有集群, 使用apache-kylin-1.6.0-hbase1.x-bin.tar.gz安装包. 1.安装规划 角色规划 IP/机器名 安装软 ...
- [学习笔记] Oracle创建用户、分配权限、设置角色
创建用户 create user student --用户名 identified by "123456" --密码 default tablespace USERS --表空间名 ...
- Java时间格式化原来这么多玩法
时间过得真是快,现在已经是2022年了.作为开发来说,时间处理是非常繁琐的.从Java 8开始有了新的时间API.时间的处理更加优雅,不再需要借助三方类库,而且线程安全.今天来梳理一下新API的格式化 ...
- APICloud超实用经验分享——平台功能
从2016年开始使用APICloud进行app项目开发,到现在也有五六年了.在此过程中伴随着APICloud一起成长,踩过一些坑,自己的技术也提升不少.在APICloud 推出avm框架一年之后,ID ...
- JUC之读写锁问题
读写锁 读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞.读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升 ...