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 相关文章推荐
让table变成exls的示例代码
Mar 24 Javascript
jquery map方法使用示例
Apr 23 Javascript
一个简单的jQuery计算器实现了连续计算功能
Jul 21 Javascript
Javascript验证方法大全
Sep 21 Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 Javascript
AngularJs Forms详解及简单示例
Sep 01 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
Thinkjs3新手入门之添加一个新的页面
Dec 06 Javascript
JavaScript实现的超简单计算器功能示例
Dec 23 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
PHP微商城开源代码实例
2019/03/27 PHP
php7下的filesize函数
2019/09/30 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
Vue组件开发初探
2017/02/14 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
浅谈Angular7 项目开发总结
2018/12/19 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
python的id()函数解密过程
2012/12/25 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
is_file和file_exists效率比较
2021/03/14 PHP
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
工商管理专业应届生求职信
2013/11/04 职场文书
语文教学感言
2014/02/06 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
经典的毕业生自荐信范文
2014/04/14 职场文书
英语求职信范文
2014/05/23 职场文书
旅游文化节策划方案
2014/06/06 职场文书
电信营业员岗位职责
2015/04/14 职场文书
python ansible自动化运维工具执行流程
2021/06/24 Python