网站首页 > 技术文章 正文
## web前端必学功法之一:左右移动
案例效果:

左右移动
思路分析:
1.绑定事件:对应的按钮去绑定点击事件
2.获取选中项:获取指定下拉框被选中的选项
3.按钮类型:根据不同的按钮移动不同的选项
移动一项:获取下拉框中被选中选项的第一个
移动多项:获取下拉框被选中的选项
移动全部:获取下拉框的选项
4.移动元素:使用appendChild()方法追加元素
实现步骤:
1.获取对应的下拉框对象与下拉框中对应的选项
2.绑定指定按钮的点击事件
3.遍历下拉选项
4.判断是否被选中
5.将左侧被选中的下拉选项添加到数组中(push());
6.将数组中的数组循环设置到右侧下拉框
```html
<table align="center">
<tr>
<td>
<!--设置多选下拉框,并指定下拉框的可见项数量-->
<select id="left" multiple="multiple" size="10" style="width: 100px;">
<option>a</option>
<option>b</option>
<option>c</option>
<option>d</option>
<option>e</option>
<option>f</option>
<option>g</option>
<option>h</option>
<option>i</option>
<option>j</option>
<option>k</option>
</select>
</td>
<td>
<button id="toRight01">></button><br>
<button id="toRight02">>></button><br>
<button id="toRight03">>>></button><br>
<button id="toLeft01"><</button><br>
<button id="toLeft02">
<<</button><br>
<button id="toLeft03"><<< </button><br>
</td>
<td>
<select id="right" multiple="multiple" size="10" style="width: 100px;"></select>
</td>
</tr>
</table>
```
```javascript
这里用两种写法
js写法:
<script>
// //获取对应的下拉框对象与下拉框的选项
var leftSelect = document.getElementById("left");
var leftItems = leftSelect.children;
var rightSelect = document.getElementById("right");
var rightItems = rightSelect.children;
//用来存放需要被移动的下拉选项
var selectedItems = [];
// 将左侧下拉框中选中的选项的第一个移动到右侧
document.getElementById("toRight01").onclick = function () {
//遍历左侧所有的下拉选项
for (var i = 0; i < leftItems.length; i++) {
//判断是否被选中
if (leftItems[i].selected) {
//将循环得到的第一个被选中的选项移动到了左右
rightSelect.appendChild(leftItems[i]);
return;
}
}
}
// 将左侧下拉框中选中的选项移动到右侧
document.getElementById("toRight02").onclick = function () {
//清空数组中的数据
selectedItems = [];
//遍历左侧所有的下拉选项
for (var i = 0; i < leftItems.length; i++) {
if (leftItems[i].selected) {
//将选中的选项添加到数组中
selectedItems.push(leftItems[i]);
}
}
//将数组中的数据循环追加到右侧
for (var j = 0; j < selectedItems.length; j++) {
rightSelect.appendChild(selectedItems[j]);
}
}
// 将左侧下拉框中选中的选项移动到右侧
document.getElementById("toRight03").onclick = function () {
//清空数组中的数据
selectedItems = [];
//遍历左侧所有的下拉选项
for (var i = 0; i < leftItems.length; i++) {
//将选中的选项添加到数组中
selectedItems.push(leftItems[i]);
}
//将数组中的数据循环追加到右侧
for (var j = 0; j < selectedItems.length; j++) {
rightSelect.appendChild(selectedItems[j]);
}
}
</script>
jQuery写法:
<script>
//jQuery写法
// 将左侧选中第一个选项移动到右侧
$("#toRight01").click(function(){
//得到左侧下拉框对象,得到左侧下拉框的下拉选项,得到被选中的选项,得到第一个
$("#left option:selected:eq(0)").appendTo($("#right"));
})
// 将左侧选中选项移动到右侧
$("#toRight02").click(function(){
//得到左侧下拉框对象,得到左侧下拉框的下拉选项,得到被选的选项
$("#left option:selected").appendTo($("#right"));
})
// 将左侧选项移动到右侧
$("#toRight03").click(function(){
//得到左侧下拉框对象,得到左侧下拉框的下拉选项,得到被选中的选项,得到第一个
$("#left option").appendTo($("#right"));
})
</script>
这里我只写了从左边移动到右边,右边移动到左边就以此类推。
猜你喜欢
- 2024-12-30 2023湖南家装行业发展论坛|梦洁家居谢志:拥抱前端巨头 做可移动家具“专家”
- 2024-12-30 vivo“射频前端电路及移动终端”等4项专利获授权
- 2024-12-30 移动优惠券界面,如此设计才能激化用户消费欲望。
- 2024-12-30 PC端和移动端的图片滑动切换插件,你有用过吗?
- 2024-12-30 移动端消息中心,你未必会设计,发一些示例出来看看。
- 2024-12-30 移动端登录页,别看简单,想要设计漂亮,看过来。
- 2024-12-30 「移动端」touch事件,touchEvent对象
- 2024-12-30 开源推荐!一款支持pc端&移动端的滑动验证码组件
- 2024-12-30 前端开发中web和移动端动画的常见实现方式
- 2024-12-30 分享几个移动端个人中心页面,既简洁又实用。
你 发表评论:
欢迎- 501℃几个Oracle空值处理函数 oracle处理null值的函数
- 499℃Oracle分析函数之Lag和Lead()使用
- 495℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 484℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 478℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 474℃【数据统计分析】详解Oracle分组函数之CUBE
- 455℃Oracle有哪些常见的函数? oracle中常用的函数
- 452℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)