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 基础知识 被自己遗忘的
Oct 15 Javascript
js+csss实现的一个带复选框的下拉框
Sep 29 Javascript
js实现简单鼠标跟随效果的方法
Apr 10 Javascript
JQuery鼠标移到小图显示大图效果的方法
Jun 10 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
Nov 17 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
Jan 07 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
Dec 09 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
详解webpack2+React 实例demo
Sep 11 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
Angular CLI发布路径的配置项浅析
Mar 29 Javascript
详解Vue3使用axios的配置教程
Apr 29 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
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
python3编码问题汇总
2016/09/06 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
python爬取网易云音乐评论
2018/11/16 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
《满井游记》教学反思
2014/02/26 职场文书
原材料检验岗位职责
2014/03/15 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL