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 在网页中的运用(asp.net)
Nov 23 Javascript
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
用JQuery在网页中实现分隔条功能的代码
Aug 09 Javascript
jquery offset函数应用实例
Nov 14 Javascript
动态加载script文件的两种方法
Aug 15 Javascript
javascript数据类型示例分享
Jan 19 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
javascript实现简单查找与替换的方法
Jul 22 Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
vue短信验证性能优化如何写入localstorage中
Apr 25 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版(4)
2006/10/09 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
javascript 动态参数判空操作
2008/12/22 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Python多进程fork()函数详解
2019/02/22 Python
Django REST framework 分页的实现代码
2019/06/19 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
Python过滤序列元素的方法
2020/07/31 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
仓库文员岗位职责
2014/04/06 职场文书
幼儿学前班评语
2014/12/29 职场文书
关于颐和园的导游词
2015/01/30 职场文书
销售工作决心书
2015/02/04 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
教师工作态度自我评价
2015/03/05 职场文书
汽车车尾标语大全
2015/08/11 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
MySQL中distinct与group by之间的性能进行比较
2021/05/26 MySQL
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang