JavaScript 的 DOM 实现左右选择的下拉菜单效果

 

今天用JavaScript 的 DOM 节点的知识实现左右选择的下拉菜单效果,其中实现了两个不同的下拉菜单设置size后,显示成一块区域
,选择要移动的内容 点击移动方向则移动到另一区域,移动过程中,一方减去选中项,一方增加选中项,代码如下:

<!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>
<script language="javascript" type="text/javascript">
 function moveRight(){
  //var num=1;
  //获取左边select
  var se1=document.getElementById("se1");
  //获取左边option
  var op1=se1.getElementsByTagName("option");
  for(var i=0;i<=op1.length-1;i++){
   if(op1[i].selected){
    //alert(op1[i].firstChild.nodeValue);
    //获取右边select
    var se2=document.getElementById("se2");
    //获取右边option
    var op2=se2.getElementsByTagName("option");
    //创建一个option标签(节点)
    var option=document.createElement("option");
    //获取左边选中的option的子节点的值
    var text=document.createTextNode(op1[i].firstChild.nodeValue);
    //将获取的值追加到元素节点中
    option.appendChild(text);
    //将option追加到select
    se2.appendChild(option);
    //将左边选中的option的子节点的值删除
    se1.removeChild(op1[i]);
   }
  }
 }

 function moveLeft(){
  //获取右边select
  var se2=document.getElementById("se2");
  //获取右边option
  var op2=se2.getElementsByTagName("option");
  for(var i=0;i<=op2.length-1;i++){
   if(op2[i].selected){
    //alert(op1[i].firstChild.nodeValue);
    //获取左边select
    var se1=document.getElementById("se1");
    //获取左边option
    var op1=se1.getElementsByTagName("option");
    //创建一个option标签(节点)
    var option=document.createElement("option");
    //获取右边选中的option的子节点的值
    var text=document.createTextNode(op2[i].firstChild.nodeValue);
    //将获取的值追加到元素节点中
    option.appendChild(text);
    //将option追加到select
    se1.appendChild(option);
    //将右边选中的option的子节点的值删除
    se2.removeChild(op2[i]);
   }
  }
 }
</script> 
</head>

<body>

<table border="0" width="300px" height="200px">
 <tr>
  <td rowspan="2" align="right">
   <select id="se1" multiple="multiple" size="8">
    <option>111</option>
    <option>222</option>
    <option>333</option>
    <option>444</option>
    <option>555</option>
    <option>666</option>
    <option>777</option>
    <option>888</option>
   </select>
  </td>
  <td align="center" valign="bottom">
   <input type="button" value=">>" οnclick="moveRight()" />
  </td>
  <td rowspan="2" align="left">
   <select id="se2" multiple="multiple" size="8">

   </select>
  </td>
 </tr>
 <tr>
  <td align="center" valign="top">
   <input type="button" value="<<" οnclick="moveLeft()" />
  </td>
 </tr>
</table>
</body>
</html>
虽然页面很简单,但是上述的功能还是实现了,JavaScript太有爱了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值