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 相关文章推荐
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
javascript 框架小结 个人工作经验
Jun 13 Javascript
Javascript 中介者模式实例
Dec 16 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
javascript cookie的简单应用
Feb 24 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 Javascript
微信小程序仿美团城市选择
Jun 06 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
Sep 26 Javascript
vue $router和$route的区别详解
Dec 02 Vue.js
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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
php生成excel列序号代码实例
2013/12/24 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
js资料toString 方法
2007/03/13 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
财务管理职业生涯规划书
2014/02/26 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
我的梦想演讲稿
2014/04/30 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server