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 相关文章推荐
找出字符串中出现次数最多的字母和出现次数精简版
Nov 07 Javascript
js下拉框二级关联菜单效果代码具体实现
Aug 03 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
jQuery的deferred对象详解
Nov 12 Javascript
js+html5实现canvas绘制镂空字体文本的方法
Jun 05 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
网页中的图片查看器viewjs使用方法
Jul 11 Javascript
关于vue-resource报错450的解决方案
Jul 24 Javascript
微信小程序实现下拉菜单切换效果
Mar 30 Javascript
JS判断数组里是否有重复元素的方法小结
May 21 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
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
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
php MessagePack介绍
2013/10/06 PHP
php正则修正符用法实例详解
2016/12/29 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
PHP重载基础知识回顾
2020/09/10 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
解决Python对齐文本字符串问题
2019/08/28 Python
在pycharm中显示python画的图方法
2019/08/31 Python
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
优秀中专生推荐信
2013/11/17 职场文书
优秀毕业生自荐信范文
2014/01/01 职场文书
设备售后服务承诺书
2014/05/30 职场文书
小学开学标语
2014/07/01 职场文书
个性与发展自我评价
2015/03/06 职场文书
银行稽核岗位职责
2015/04/13 职场文书
指导教师推荐意见
2015/06/05 职场文书
iPhone13再次曝光
2021/04/15 数码科技
Redis中一个String类型引发的惨案
2021/07/25 Redis