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 相关文章推荐
juqery 学习之四 筛选查找
Nov 30 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
Dec 16 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
Aug 28 Javascript
jQuery入门之层次选择器实例简析
Dec 11 Javascript
Javascript+CSS3实现进度条效果
Oct 28 Javascript
js/jq仿window文件夹框选操作插件
Mar 08 Javascript
浅谈webpack下的AOP式无侵入注入
Nov 12 Javascript
微信小程序数字滚动插件使用详解
Feb 02 Javascript
JavaScript私有变量实例详解
Jan 24 Javascript
JS开发常用工具函数(小结)
Jul 04 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 Javascript
js基于canvas实现时钟组件
Feb 07 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
php的正则处理函数总结分析
2008/06/20 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
PHP curl使用实例
2015/07/02 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
vue组件实例解析
2017/01/10 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
Python 的描述符 descriptor详解
2016/02/27 Python
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
django执行数据库查询之后实现返回的结果集转json
2020/03/31 Python
python使用建议与技巧分享(二)
2020/08/17 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
中层干部岗位职责
2013/12/18 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server
mysqldump进行数据备份详解
2022/07/15 MySQL