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 相关文章推荐
js渐变显示渐变消失示例代码
Aug 01 Javascript
Highcharts入门之简介
Aug 02 Javascript
layer实现弹窗提交信息
Dec 12 Javascript
ES6通过babel转码使用webpack使用import关键字
Dec 13 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
Jan 25 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
angular 实时监听input框value值的变化触发函数方法
Aug 31 Javascript
angularjs中判断ng-repeat是否迭代完的实例
Sep 12 Javascript
实现elementUI表单的全局验证的方法步骤
Apr 29 Javascript
vue-devtools的安装和使用步骤详解
Oct 17 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
Nov 07 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如何通过AJAX方式实现登录功能
2015/11/23 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
php微信开发之关注事件
2018/06/14 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
Python语言的变量认识及操作方法
2018/02/11 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
详解python statistics模块及函数用法
2019/10/27 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
高中历史教学反思
2014/02/08 职场文书
质量月口号
2014/06/20 职场文书
神农溪导游词
2015/02/11 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS