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 相关文章推荐
javascript编程起步(第二课)
Jan 10 Javascript
Stop SQL Server
Jun 21 Javascript
JQuery 浮动导航栏实现代码
Aug 27 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
May 04 Javascript
jquery的attr方法禁用表单元素禁用输入内容
Jun 23 Javascript
jquery使用$(element).is()来判断获取的tagName
Aug 24 Javascript
纯js实现无限空间大小的本地存储
Jun 18 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
Sep 16 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
Aug 15 Javascript
深入浅析Vue组件开发
Nov 25 Javascript
详解一些适用于Node.js的命名约定
Dec 08 Javascript
JavaScript实现酷炫的鼠标拖尾特效
Feb 18 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学习之简单计算器实现代码
2011/06/09 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
Smarty模板语法详解
2019/07/20 PHP
多广告投放代码 推荐
2006/11/13 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
jqGrid用法汇总(全经典)
2016/06/28 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
python分割和拼接字符串
2013/11/01 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
初步解析Python下的多进程编程
2015/04/28 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Python内存读写操作示例
2018/07/18 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
python里运用私有属性和方法总结
2019/07/08 Python
Python 实现简单的客户端认证
2020/07/29 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
夜大自我鉴定
2013/10/31 职场文书
标准毕业生自荐信范文
2013/11/04 职场文书
2014年稽查工作总结
2014/12/20 职场文书
沈阳故宫导游词
2015/01/31 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
指导教师推荐意见
2015/06/05 职场文书
Nginx进程调度问题详解
2021/09/25 Servers