jQuery实现下拉框左右选择的简单实例


Posted in Javascript onFebruary 22, 2014

jQuery实现下拉框左右选择的简单实例

就是实现这个效果的,选中添加到右边,全部添加到右边,选中删除到左边,全部删除到左边。

html部分:

<body>
    <div class="centent">
        <select multiple="multiple" id="select1" style="width:100px;height:160px;">
            <option value="1">选项1</option>
            <option value="2">选项2</option>
            <option value="3">选项3</option>
            <option value="4">选项4</option>
            <option value="5">选项5</option>
            <option value="6">选项6</option>
            <option value="7">选项7</option>
        </select>
        <div>
            <span id="add" >选中添加到右边>></span>
            <span id="add_all" >全部添加到右边>></span>
        </div>
    </div>
    <div class="centent">
        <select multiple="multiple" id="select2" style="width: 100px;height:160px;">
            <option value="8">选项8</option>
        </select>
        <div>
            <span id="remove"><<选中删除到左边</span>
            <span id="remove_all"><<全部删除到左边</span>
        </div>
    </div>
</body>

这里要注意的是select的multiple属性,只有添加了之后,才会在select框中出现多个select选项。
否则只会显示出一条。

jQuery代码解析:

<script type="text/javascript">
$(function(){
    //移到右边
    $('#add').click(function() {
    //获取选中的选项,删除并追加给对方
        $('#select1 option:selected').appendTo('#select2');
    });
    //移到左边
    $('#remove').click(function() {
        $('#select2 option:selected').appendTo('#select1');
    });
    //全部移到右边
    $('#add_all').click(function() {
        //获取全部的选项,删除并追加给对方
        $('#select1 option').appendTo('#select2');
    });
    //全部移到左边
    $('#remove_all').click(function() {
        $('#select2 option').appendTo('#select1');
    });
    //双击选项
    $('#select1').dblclick(function(){ //绑定双击事件
        //获取全部的选项,删除并追加给对方
        $("option:selected",this).appendTo('#select2'); //追加给对方
    });
    //双击选项
    $('#select2').dblclick(function(){
       $("option:selected",this).appendTo('#select1');
    });
});
</script>

这里要注意的是$("option:selected",this)。这个看起来有点奇怪。其实$()有2个参数,一个是选择器,一个是作用域。 要和$("xxxx,xxx")区分。通常意义下的$('xxxx')其实是默认了第二个作用域。完整说应该是$('xxxx',document)。这里加上this之后,作用域就限制在#select1中或#select2中了。也就是select1中的选中项被添加到#select2的后面。

效果类似于$("#select1 option:selected")。

如果不加上,this这个参数的话,就会牵扯到全局中的选中项。就会出错。

注意点2:

append()与appendTo()方法的区别。

append(content|fn)向每个匹配的元素内部追加内容。

appendTo(content)把所有匹配的元素追加到另一个指定的元素元素集合中。

前者是向匹配的元素中添加内容的,后者是把匹配的素有元素追加到另一个指定的元素集合中的。

比如$("p").append("<b>Hello</b>");是向p元素中追加内容<b>Hello</b>。

原来的p元素内容:<p>I would like to say: </p>现在的p元素内容:[ <p>I would like to say: <b>Hello</b></p> ]$("p").appendTo("div");将p元素追加到div元素中。原来的内容:<p>I would like to say: </p>
<div></div><div></div>结果:<div><p>I would like to say: </p></div> <div><p>I would like to say: </p></div>

Javascript 相关文章推荐
使用jquery给input和textarea设定ie中的focus
May 29 Javascript
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
JS提交并解析后台返回的XML的代码
Nov 03 Javascript
this和执行上下文实现代码
Jul 01 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
Apr 03 Javascript
JQuery中的html()、text()、val()区别示例介绍
Sep 01 Javascript
JavaScript排序算法动画演示效果的实现方法
Oct 18 Javascript
jQuery实现给input绑定回车事件的方法
Feb 09 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
Mar 30 Javascript
浅谈Node.js之异步流控制
Oct 25 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
vue 中Virtual Dom被创建的方法
Apr 15 Javascript
jquery取消选择select下拉框示例代码
Feb 22 #Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
Feb 21 #Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 #Javascript
js document.write()使用介绍
Feb 21 #Javascript
jQuery写fadeTo示例代码
Feb 21 #Javascript
iframe父页面获取子页面参数的方法
Feb 21 #Javascript
表单序列化与jq中的serialize使用示例
Feb 21 #Javascript
You might like
php中输出json对象的值(实现方法)
2018/03/07 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
JQuery 风格的HTML文本转义
2009/07/01 Javascript
Javascript 中介者模式实例
2009/12/16 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
浅析JavaScript中命名空间namespace模式
2016/06/22 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
深入讲解Python编程中的字符串
2015/10/14 Python
详解Swift中属性的声明与作用
2016/06/30 Python
不要用强制方法杀掉python线程
2017/02/26 Python
使用Python对Csv文件操作实例代码
2017/05/12 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
kafka-python批量发送数据的实例
2018/12/27 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
浅谈amaze-ui中datepicker和datetimepicker注意的几点
2020/08/21 HTML / CSS
父母对孩子的寄语
2014/04/09 职场文书
一年级小学生评语
2014/04/22 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS