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 相关文章推荐
jQuery 位置插件
Dec 25 Javascript
JSON 客户端和服务器端的格式转换
Aug 27 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
Sep 15 Javascript
本地对象Array的原型扩展实现代码
Dec 04 Javascript
js注意img图片的onerror事件的分析
Jan 01 Javascript
在jquery中处理带有命名空间的XML数据
Jun 13 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
js实现图片轮播效果
Dec 19 Javascript
深入学习Bootstrap表单
Dec 13 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
Dec 10 jQuery
JS左右无缝轮播功能完整实例
May 16 Javascript
JS代码编译器Monaco使用方法
Jun 11 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
Python最长公共子串算法实例
2015/03/07 Python
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
经典广告词大全
2014/03/14 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
施工安全责任书
2014/04/14 职场文书
欢迎横幅标语
2014/06/17 职场文书
关于爱国的标语
2014/06/24 职场文书
房产公证委托书范本
2014/09/20 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
2015年财务个人工作总结范文
2015/05/22 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏