带你学习JQuery:下拉框的处理

时间:2022-11-21 17:46:59
 

所谓的下拉框就是支持多选的下拉列表,在这里将处理下面的情形。

左右两个下拉框,点击左侧的选项,点击添加到右侧,则被选中的项被添加到右侧下拉框

点击全部添加,那么左侧的全不添加到右侧

也可以按上面的方式将右侧的删除到左侧;

先构造两个下拉框:

<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" >选中添加到右边&gt;&gt;</span>
   <span id="add_all" >全部添加到右边&gt;&gt;</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">&lt;&lt;选中删除到左边</span>
   <span id="remove_all">&lt;&lt;全部删除到左边</span>
  </div>
 </div>

左边的选中项移动到右边:

$('#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').appenTo('#select1')})

整体代码如下;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
* { margin:0; padding:0; }
div.centent {
   float:left;
   text-align: center;
   margin: 10px;
}
span {
 display:block;
 margin:2px 2px;
 padding:4px 10px;
 background:#898989;
 cursor:pointer;
 font-size:12px;
 color:white;
}
</style>
<!--   引入jQuery -->
<script src="../scripts/jquery-1.3.1.js" type="text/javascript"></script>
<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>

</head>
<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" >选中添加到右边&gt;&gt;</span>
   <span id="add_all" >全部添加到右边&gt;&gt;</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">&lt;&lt;选中删除到左边</span>
   <span id="remove_all">&lt;&lt;全部删除到左边</span>
  </div>
 </div>


</body>
</html>