jQuery之下拉框左右选择
来源:互联网 发布:centos7 安装网络配置 编辑:程序博客网 时间:2024/05/01 17:38
就是实现这个效果的,选中添加到右边,全部添加到右边,选中删除到左边,全部删除到左边。
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>
0 0
- jQuery之下拉框左右选择
- jQuery之下拉框左右选择
- Selenium之下拉框的选择
- jQuery之下拉菜单
- JS之下拉列表左右移动
- JavaScript学习笔记之下拉选择框的操作
- Swing之下拉框
- finereport 之下拉框
- ExtJs之下拉框
- JQuery下拉框左右选择
- jquery实现左右选择框
- JQuery 封装脚本系列之下拉列表框(Select)
- 5.1.4: jQuery表单应用之下拉框
- jquery那点事之下拉菜单
- jQuery - 小鸟系列之下拉联动效果
- extJs之下拉框联动
- Extjs4之下拉框赋值
- iOS之下拉框实现
- ASIHTTPRequest详解
- vim 配置及用法
- Mysql使用Federate引擎实现操作本地表映射远程操作表
- jetty
- 编译通过不能执行
- jQuery之下拉框左右选择
- 雅可比矩阵
- 经典线程同步 关键段CS
- 获取adriod 虚拟机的ip
- 计算机视觉相对容易的期刊
- MFC框架分析
- 大数运算(超长整数运算)算法的简单分析
- 输出n的因子
- IOS面试题