DOM操作和jQuery实现选项移动操作的简单实例


Posted in Javascript onJune 07, 2016

DOM:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>DOM选项移动操作</title>
  <style>
    select {
      width: 100px;
      height: 85px;
    }

    div {
      display: inline-block;
      width: 50px
    }
  </style>
</head>
<body>
     <select id="unsel" size="5" multiple><option>Argentina</option><option>Brazil</option><option>Canada</option><option>Chile</option><option>China</option><option>Cuba</option><option>Denmark</option><option>Egypt</option><option>France</option><option>Greece</option><option>Spain</option></select>
    <div>
      <button onclick="move(this.innerHTML)">>></button>
      <button onclick="move(this.innerHTML)">></button>
      <button onclick="move(this.innerHTML)"><</button>
      <button onclick="move(this.innerHTML)"><<</button>
    </div>
    <select id="sel" size="5" multiple>
    </select>
  <script>
    function $(id){
      return document.getElementById(id);
    }
    var unsel=null;//保存所有备选国家列表
    var sel=[];//保存已选中的国家列表
    window.onload=function(){
      unsel=$("unsel").innerHTML
              .replace(/<\/?option>/g," ")
              .match(/\b[a-zA-Z]+\b/g);
    }
    function move(inner){
      switch (inner){
        case ">>"://全部右移
          sel=sel.concat(unsel);
          unsel.length=0;
          sel.sort();
          break;
        case "<<"://全部左移
          unsel=unsel.concat(sel);
          sel.length=0;
          unsel.sort();
          break;
        case ">"://选中项右移
          var opts=document.querySelectorAll("#unsel option");
          //从后向前遍历每个option
          for(var i=opts.length-1;i>=0;i--){
            if(opts[i].selected){
            //删除unsel中i位置的1个元素,直接压入sel
              sel.push(unsel.splice(i,1)[0]);
            }
          }
          sel.sort();
          break;
        case "<"://选中项左移
          var opts=document.querySelectorAll("#sel option");
          for(var i=opts.length-1;i>=0;i--){
            if(opts[i].selected){
              unsel.push(sel.splice(i,1)[0]);
            }
          }
          unsel.sort();
          break;
      }
      show();
    }
    function show(){//将两个数组,更新到select元素中
      $("unsel").innerHTML="<option>"
                +unsel.join("</option><option>")
                +"</option>";
      $("sel").innerHTML="<option>"
                +sel.join("</option><option>")
                +"</option>";
    }
  </script>
</body>
</html>

jquery:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>选项移动操作</title>
  <script src="jquery.min.js"></script>
  <style>
    select {
      width: 100px;
      height: 85px;
    }

    div {
      display: inline-block;
      width: 50px
    }
  </style>
</head>
<body>
  <select id="first" size="5" multiple>
    <option>Argentina</option>
    <option>Brazil</option>
    <option>Canada</option>
    <option>Chile</option>
    <option>China</option>
    <option>Cuba</option>
    <option>Denmark</option>
    <option>Egypt</option>
    <option>France</option>
    <option>Greece</option>
    <option>Spain</option>
  </select>
  <div>
    <button id="add">></button>
    <button id="add_all">>></button>
    <button id="remove"><</button>
    <button id="remove_all"><<</button>
  </div>
  <select id="second" size="5" multiple>
  </select>

  <script>
      $("#add").click(function(){
        // 将左边被选中的选项,移到右边去
        $("#first>option:selected").appendTo($("#second"));
      });
      $("#add_all").click(function(){
        $("#first>option").appendTo($("#second"));
      });
      $("#remove").click(function(){
        $("#second>option:selected").appendTo($("#first"));
      });
      $("#remove_all").click(function(){
        $("#second>option").appendTo($("#first"));
      });
      // 双击事件
      $("#first").dblclick(function(){
        $("#first>option:selected").appendTo($("#second"));
      });
      $("#second").dblclick(function(){
        $("#second>option:selected").appendTo($("#first"));
      });
  </script>
</body>
</html>

以上这篇DOM操作和jQuery实现选项移动操作的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
常用一些Javascript判断函数
Aug 14 Javascript
javascript实现日历控件(年月日关闭按钮)
Dec 12 Javascript
javascript中typeof的使用示例
Dec 19 Javascript
使用Curl命令查看请求响应时间方法
Nov 04 Javascript
JS无缝滚动效果实现方法分析
Dec 21 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 Javascript
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
Feb 01 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
Aug 17 Javascript
vue样式穿透 ::v-deep的具体使用
Jun 04 Javascript
ant-design表单处理和常用方法及自定义验证操作
Oct 27 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 #Javascript
Knockoutjs 学习系列(一)ko初体验
Jun 07 #Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
Jun 07 #Javascript
Javascript之Number对象介绍
Jun 07 #Javascript
Javascript之Math对象详解
Jun 07 #Javascript
分享jQuery网页元素拖拽插件
Dec 01 #Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 #Javascript
You might like
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JavaScript库 开发规则
2009/01/31 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
JavaScript实现简单图片翻转的方法
2015/04/17 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
Python迭代器和生成器介绍
2015/03/06 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
Python常用算法学习基础教程
2017/04/13 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
2020/03/24 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
override和overload的区别
2016/03/09 面试题
创业计划书——互联网商机
2014/01/12 职场文书
安全资金保障制度
2014/01/23 职场文书
大学生赌博检讨书
2014/09/22 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
先进典型事迹材料
2014/12/29 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python