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 相关文章推荐
浏览器无法运行JAVA脚本的解决方法
Jan 09 Javascript
javascript 窗口加载蒙板 内嵌网页内容
Nov 19 Javascript
js函数调用常用方法详解
Dec 03 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
May 30 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 Javascript
jQuery oLoader实现的加载图片和页面效果
Mar 14 Javascript
JavaScript通过代码调用Flash显示的方法
Feb 02 Javascript
基于javascript实现按圆形排列DIV元素(一)
Dec 02 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
JS全角与半角转化实例(分享)
Jul 04 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
Apr 28 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
编译问题
2006/10/09 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
php实现倒计时效果
2015/12/19 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
python3实现磁盘空间监控
2018/06/21 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
实习自荐信
2013/10/13 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
小学语文课后反思精选
2014/04/25 职场文书
校园文明标语
2014/06/13 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
2019年亲子运动会口号
2019/10/11 职场文书
基于python实现银行管理系统
2021/04/20 Python
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技