<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title> </head>
//HTML:
<body> <div
style="border: 1px dashed #E6E6E6; margin: 150px 0px 0px 450px; width: 350px; height: 200px; background-color: #E6E6E6;">
<table width="285" height="169" border="0" align="left"
cellpadding="0" cellspacing="0" style="margin: 15px 0px 0px 15px;">
<tr>
<td width="126">
<!--multiple="multiple" 能同时选择多个 size="10" 确定下拉选的长度--> <select
name="first" multiple="multiple" size=10 class="td3" id="s">
<option ondblclick="MoveSelectedOption(this,'second')" value="选项1">1选项1</option>
<option ondblclick="MoveSelectedOption(this,'second')" value="选项2">2选项2</option>
<option ondblclick="MoveSelectedOption(this,'second')" value="选项3">3选项3</option>
<option ondblclick="MoveSelectedOption(this,'second')" value="选项4">4选项4</option>
<option ondblclick="MoveSelectedOption(this,'second')" value="选项8">8选项8</option>
<option ondblclick="MoveSelectedOption(this,'second')" value="选项A">A选项A</option>
<option ondblclick="MoveSelectedOption(this,'second')" value="选项6">6选项6</option>
<option ondblclick="MoveSelectedOption(this,'second')" value="选项7">7选项7</option>
</select>
</td>
<td width="127" align="left">
<select name="second" size="10"
multiple="multiple" class="td3" id="second">
<option ondblclick="MoveSelectedOption(this,'s')" value="选项9">9选项9</option>
</select>
</td>
</tr>
</table>
</div>
</body>
//JS: <script src="/static/js/jquery_1.12.4_jquery.min.js"></script>
<script type="text/javascript">
$(function () { }); function BindSelectSortElement(target_id, source_id) {
// 排序select 下option元素
let arr_text = []; // 用于获取option text值
let arr_val = {}; // 用于获取原option vlaue值
$("#"+ target_id + ' option').each(function () {
arr_text.push(this.text);
arr_val[this.text] = this.value
});
arr_text_sort = arr_text.sort(function(a,b){return a.toString().localeCompare(b)}); // 排序option text值
console.log(arr_text_sort);
$("#"+ target_id).empty(); // 清空目标select标签下的所有对象
$.each(arr_text_sort, function (k, v) {
let option = "<option value='" + arr_val[v] +"'ondblclick=MoveSelectedOption(this,'"+ source_id +"') >" + v +"</option>";
$("#"+ target_id).append(option); // 将排序后的option 重新添加至select标签下
})
} function MoveSelectedOption(ele,target_id) {
     // 移动select元素
let source_id = $(ele).parent().attr('id');
let option = "<option value='" + $(ele).val() +"'ondblclick=MoveSelectedOption(this,'"+ source_id +"') >" + $(ele).text() +"</option>";
$("#"+ target_id).append(option);
$(ele).remove();
BindSelectSortElement(target_id, source_id) // 移动后重新排序显示
} </script> </html> 备注:可以方法比较笨,如有简单的方法还请各位看客告知,谢谢!
   具体细节可以在进一步优化,比如触发方法可以通过jQuery的选择option后点击触发,不需要每个option 写一个双击触发方法
*********************************************************** 学习永远不晚。——高尔基 ***********************************************************

两个select之间的元素互相移动并保持顺序的更多相关文章

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

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

  2. 两个Select 之间的值的传递

    运行效果: 下面是代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML ...

  3. python基础===两个list之间移动元素

    首先我们先了解一下list的几个常用函数: a = [123,456,"tony","jack"] #list中增加元素a.append("www&q ...

  4. activity生命周期分析(两个activity之间跳转的生命周期执行顺序)

    NoteMainActivity点击跳转至NoteListActivity 我们都了解: 当A界面点击进入B界面时,此时         A===onPause--->onStop       ...

  5. 软件项目技术点(1)——d3.interpolateZoom-在两个点之间平滑地缩放平移

    AxeSlide软件项目梳理   canvas绘图系列知识点整理 软件参考d3的知识点 我们在软件中主要用到d3.js的核心函数d3.interpolateZoom - 在两个点之间平滑地缩放平移.请 ...

  6. JS之document例题讲解1(两张表之间数据转移、日期时间选择、子菜单下拉、用div做下拉菜单、事件总结)

    作业一:两个列表之间数据从一个列表移动到另一个列表 <div style="width:600px; height:500px; margin-top:20px"> & ...

  7. DOM的小练习,两个表格之间数据的移动

    本次讲的是两个表格之间数据的移动,左边的表格移动到右边,并且左边表格移动内容消失. <head>   <meta http-equiv="Content-Type" ...

  8. sql返回两个日期之间的日期_函数实现

    -- Description:返回两段日期之间的所有日期    <Description,,>-- ============================================ ...

  9. Oracle 两个表之间更新的实现

    Oracle 两个表之间更新的实现   来源:互联网 作者:佚名 时间:2014-04-23 21:39 Oracle中,如果跨两个表进行更新,Sql语句写成这样,Oracle 不会通过.查了资料,S ...

随机推荐

  1. wap2app(七)-- 长按保存图片

    用Hbuilder打包网站,在打包好的app中是无法像网站那样直接使用长按图片保存的功能的,需要在网站里对来自wap2app进行单独处理,接下来介绍一下如何在Hbuilder打包后的app里实现长按图 ...

  2. (网页)HTML5 Canvas ( 事件交互, 点击事件为例 ) isPointInPath(转)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. [转] Scala 中的异步事件处理

    在任何并发性应用程序中,异步事件处理都至关重要.无论事件的来源是什么(不同的计算任务.I/O 操作或与外部系统的交互),您的代码都必须跟踪事件,协调为响应它们而执行的操作.应用程序可以采用两种基本方法 ...

  4. java导出数据到excel里:直接导出和导出数据库数据

    一.直接导出 package com.ij34.util; import java.io.FileNotFoundException; import java.io.FileOutputStream; ...

  5. return ||和return && 区别

    return a && b 如果a是true的话,返回b,否则返回a return a || b 如果a是true的话,返回a,否则返回b

  6. [20180823]IMU与db link.txt

    [20180823]IMU与db link.txt --//当使用db link查看远程表时,实际上会产生小小的日志.--//当时如果与IMU结合在一起,可以导致IMU的失效. 1.环境:SCOTT@ ...

  7. SQL Server 索引重建手册

    注意: 索引重建前建议把数据库切换为完整模式,否则索引复制会在数据文件中进行,导致数据文件很大,而数据文件的收缩比日志文件的收缩要困难的多,且会对业务造成影响. 步骤一: 查询索引碎片,脚本如下,库比 ...

  8. window.onunload中使用HTTP请求

    在页面关闭时触发window.onunload 在onunload中要使用http请求,需要使用同步请求: 如: $.ajax({ url: url, async: false }); iframe页 ...

  9. monkeyrunner.bat运行python脚本/命令行

    http://luochunfeng163.blog.163.com/blog/static/1670092492014258914775/

  10. Ajax入门例子

    在customer.php的文件中,代码如下: <html> <head> <script type="text/javascript"> fu ...