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 相关文章推荐
ExtJs grid行 右键菜单的两种方法
Jun 19 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
Jul 28 Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 Javascript
纯JavaScript实现获取onclick、onchange等事件的值
Dec 29 Javascript
Javascript基础教程之变量
Jan 18 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
jQuery实现元素的插入
Feb 27 Javascript
原生js实现密码输入框值的显示隐藏
Jul 17 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
Jun 30 Javascript
ES6使用export和import实现模块化的方法
Sep 10 Javascript
JS对象和字符串之间互换操作实例分析
Feb 02 Javascript
vue实现图片懒加载的方法分析
Feb 05 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
天津市收音机工业发展史
2021/03/04 无线电
PHP下10件你也许并不了解的事情
2008/09/11 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
php json_encode奇怪问题说明
2011/09/27 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
php中switch语句用法详解
2015/08/17 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
Python读大数据txt
2016/03/28 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
Python pip 常用命令汇总
2020/10/19 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
毕业生找工作推荐信
2013/11/21 职场文书
学习党章思想汇报
2014/01/07 职场文书
大型活动策划方案
2014/01/12 职场文书
小学后勤管理制度
2014/01/14 职场文书
材料会计岗位职责
2014/03/06 职场文书
年终晚会主持词
2014/03/25 职场文书
大学生见习期满自我鉴定
2014/09/13 职场文书
文明单位创建材料
2014/12/24 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
教师见习总结范文
2015/06/23 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫