javascript基于DOM实现权限选择实例分析


Posted in Javascript onMay 14, 2015

本文实例讲述了javascript基于DOM实现权限选择的方法。分享给大家供大家参考。具体实现方法如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>权限选择</title>
<script type="text/javascript">
//====================多选操作====================================
function selMultiple(selectSrc, selectDes) {
  for (var i = selectSrc.childNodes.length - 1; i >= 0; i--) {
    var option = selectSrc.childNodes[i];
    if (option.selected == true) {
      selectSrc.removeChild(option);
      option.selected = false;
      selectDes.appendChild(option);
    }
  }
}
function selectToRight() {
  var selectSrc = document.getElementById("select1");
  var selectDes = document.getElementById("select2");
  selMultiple(selectSrc, selectDes);
}
function selectToLeft() {
  var selectSrc = document.getElementById("select2");
  var selectDes = document.getElementById("select1");
  selMultiple(selectSrc, selectDes);
}
//====================全选操作====================================
function selAll(selectSrc, selectDes) {
//      这种写法有问题,发现selectSrc.childNodes.length居然等于10,实际上只有5个元素
//      for (var i = 0; i < selectSrc.childNodes.length; i++) {
//        var option = selectSrc.childNodes[0];
//        selectSrc.removeChild(option);
//        selectDes.appendChild(option);
//      }
  var options = selectSrc.getElementsByTagName("option");
  var optLength = options.length;
  /*
  注意:for循环中不能直接使用options.length,因为selectDes.appendChild执行后
  会导致options.length减一,所以先把options.length存放到一个变量中备用
  */
  for (var i = 0; i < optLength; i++) {
    var option = options[0]; //这里使用的始终是第0个元素
    selectDes.appendChild(option);
  }
  selectSrc.options.length = 0;
}
function selectToRightAll() {
  var selectSrc = document.getElementById("select1");
  var selectDes = document.getElementById("select2");
  selAll(selectSrc, selectDes);      
}
function selectToLeftAll() {
  var selectSrc = document.getElementById("select2");
  var selectDes = document.getElementById("select1");
  selAll(selectSrc, selectDes);    
}
</script>
</head>
<body>
<select id="select1" multiple="multiple" style="float:left;width:100px;height:200px;">
<option>添加</option>
<option>删除</option>
<option>修改</option>
<option>保存</option>
<option>查询</option>
</select>
<div style="float:left;width:50px;">
<input type="button" style="float:left;width:100%;" value=">" onclick="selectToRight()" />
<input type="button" style="float:left;width:100%;" value="<" onclick="selectToLeft()" />
<input type="button" style="float:left;width:100%;" value=">>" onclick="selectToRightAll()" />
<input type="button" style="float:left;width:100%;" value="<<" onclick="selectToLeftAll()" />
</div>
<select id="select2" multiple="multiple" style="float:left;width:100px;height:200px"></select>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
getElementById在任意一款浏览器中都可以用吗的疑问回复
May 13 Javascript
JS 文件传参及处理技巧分析
May 13 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
Aug 24 Javascript
javascript利用apply和arguments复用方法
Nov 25 Javascript
JS中判断null、undefined与NaN的方法
Mar 24 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
原生js和jquery分别实现横向导航菜单效果
May 13 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
Jun 07 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
javascript中DOM复选框选择用法实例
May 14 #Javascript
JS对字符串编码的几种方式使用指南
May 14 #Javascript
jQuery的基本概念与高级编程
May 14 #Javascript
javascript实现简单的省市区三级联动
May 14 #Javascript
javascript实现仿腾讯游戏选择
May 14 #Javascript
JavaScript实现Flash炫光波动特效
May 14 #Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 #Javascript
You might like
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
解析如何在PHP下载文件名中解决乱码的问题
2013/06/20 PHP
AngularJS实现表单验证
2015/01/28 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
JavaScript原生对象常用方法总结(推荐)
2016/05/13 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
pygame播放音乐的方法
2015/05/19 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
创业计划书的内容步骤和要领
2014/01/04 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
大学老师推荐信
2014/02/25 职场文书
成绩单家长意见
2015/06/03 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
商场广播稿范文
2015/08/19 职场文书
初中美术教学反思
2016/02/17 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
Golang并发操作中常见的读写锁详析
2021/08/30 Golang