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的public、private和privileged模式
Dec 28 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
Aug 11 Javascript
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
JavaScript中的this,call,apply使用及区别详解
Jan 29 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
jQuery扩展_动力节点Java学院整理
Jul 05 jQuery
解决Layui数据表格中checkbox位置不居中的方法
Aug 15 Javascript
WEEX环境搭建与入门详解
Oct 16 Javascript
CocosCreator入门教程之网络通信
Apr 16 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
用ODBC的分页显示
2006/10/09 PHP
php object转数组示例
2014/01/15 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
php数组去除空值函数分享
2015/02/02 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
python求解水仙花数的方法
2015/05/11 Python
python实现简单登陆流程的方法
2018/04/22 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
详解python深浅拷贝区别
2019/06/24 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
html5读取本地文件示例代码
2014/04/22 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
Structs界面控制层技术
2013/10/11 面试题
高中生自我鉴定范文
2013/10/30 职场文书
市场营销专科应届生求职信
2013/11/24 职场文书
称象教学反思
2014/02/03 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
交通事故责任认定书
2015/08/06 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书