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 相关文章推荐
用roll.js实现的图片自动滚动+鼠标触动的特效
Mar 18 Javascript
Jquery升级新版本后选择器的语法问题
Jun 02 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
May 12 Javascript
js弹出确认是否删除对话框
Mar 27 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
jQuery实现图片向左向右切换效果的简单实例
May 18 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 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
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
2020/05/22 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
Python类定义和类继承详解
2015/05/08 Python
python中使用序列的方法
2015/08/03 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python绘制七段数码管实例代码
2017/12/20 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
小学生演讲稿
2014/01/12 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
大学生操行评语大全
2014/12/31 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android