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 29 Javascript
js判读浏览器是否支持html5的canvas的代码
Nov 18 Javascript
JavaScript及jquey实现多个数组的合并操作
Sep 06 Javascript
JavaScript简单修改窗口大小的方法
Aug 03 Javascript
js如何实现淡入淡出效果
Nov 18 Javascript
深入理解javascript中concat方法
Dec 12 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
js实现可以点击收缩或张开的悬浮窗
Sep 18 Javascript
js实现鼠标单击Tab表单切换效果
May 16 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
JavaScript实现横版菜单栏
Mar 17 Javascript
JS canvas实现画板和签字板功能
Feb 23 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 memcache扩展的三种安装方法
2009/04/26 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
jquery map方法使用示例
2014/04/23 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
springboot+vue实现文件上传下载
2020/11/17 Vue.js
Python遍历指定文件及文件夹的方法
2015/05/09 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
python视频按帧截取图片工具
2019/07/23 Python
django中media媒体路径设置的步骤
2019/11/15 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
华为C++笔试题
2014/08/05 面试题
资料员的岗位职责
2013/11/20 职场文书
简历中求职的个人自我评价
2013/12/03 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
学生违反校规检讨书
2014/10/28 职场文书
护士求职自荐信
2015/03/25 职场文书
java实现面板之间切换功能
2022/06/10 Java/Android
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL