网站首页 > 技术文章 正文
## 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 分享几个移动端个人中心页面,既简洁又实用。
你 发表评论:
欢迎- 最近发表
-
- 用AI做微信小程序的完整步骤_如何用ai制作微信表情包
- 自习室预约的微信小程序设计与实现-计算机毕业设计源码+LW文档
- 微信小程序开发入门指南_微信小程序开发入门教程
- 写字机器人好用吗? 组装就花了5个小时 还要学习软件、录入字体
- 白描网页版 - 高效准确且免费的OCR文字识别工具
- 字体图形面板与图标字体使用_字体图标的优势和劣势
- 作为前端工程师必须懂得的33个CSS核心概念
- Flutter程序员开发炫酷的登录页面 字体库运用 路由学习 源码分享
- 2025Q3开源字体盘点:让你的代码和文档'颜值'飙升!
- Agent杂谈:Agent的能力上下限及「Agent构建」核心技术栈调研分享~
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)