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 进阶篇3 Ajax 、JSON、 Prototype介绍
Mar 14 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
javascript实现存储hmtl字符串示例
Apr 25 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
Oct 17 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
Jan 23 Javascript
简单理解JavaScript中的封装与继承特性
Mar 19 Javascript
如何在Angular.JS中接收并下载PDF
Nov 26 Javascript
JavaScript函数参数的传递方式详解
Mar 06 Javascript
webpack实现热加载自动刷新的方法
Jul 30 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
Sep 29 Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 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
改进的IP计数器
2006/10/09 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
项目实践之javascript技巧
2007/12/06 Javascript
33种Javascript 表格排序控件收集
2009/12/03 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
Windows下PyMongo下载及安装教程
2015/04/27 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
学校学雷锋活动总结
2014/06/26 职场文书
无房证明样本
2015/06/17 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python