//删除select列表中选中的选项
function deleted(obj) {
if (obj == null) return;
if (obj.tagName != "SELECT") return;
for (var i=obj.options.length-1;i>=0;i--) {
if (obj.options[i].selected && obj.options[i].added) {
obj.removeChild(obj.options[i]);
}
}
}
//全选select列表中的选项
function selectAll(obj) {
if (obj == null) return;
if (obj.tagName != "SELECT") return;
var length = obj.options.length;
for (var i=0;i<length;i++) {
obj.options[i].selected = true;
}
}
//取消给定列表中的所有选中的选项
function selectNone(obj) {
if (obj == null) return;
if (obj.tagName != "SELECT") return;
var length = obj.options.length;
for (var i=0;i<length;i++) {
obj.options[i].selected = false;
}
}
//判断选项在列表中是否存在
function optionExists(obj,opt) {
var length = obj.options.length;
for (var i=0;i<length;i++) {
if(typeof obj.options[i].id != 'undefined' && typeof opt.id != "undefined" && obj.options[i].id == opt.id){
return true;
}else if (obj.options[i].text == opt.text && obj.options[i].value == opt.value){
return true;
}
}
return false; //如果不存在,则返回false
}
//将列表框fromList中选中的项添加到toList列表框中,不向toList中的添加重复项
function add(fromList,toList) {
for (var i=0;i<fromList.options.length;i++) {
if (fromList.options[i].selected) { //如果选项被选中,则需要加入到obj2中。
//进行重复性检查
//如果toList列表框中存在指定的选项,进行下一个循环
if (optionExists(toList,fromList.options[i])) {
continue;
}
var opt = fromList.options[i].cloneNode(false);
opt.text = fromList.options[i].text;
opt.value = fromList.options[i].value;
toList.options.add(opt); //将选项加入到toList中。
fromList.options[i].added = true;
}
}
}
//排序,obj为列表框对象,order为排序属性,desc为是否倒序(true-倒序),采用冒泡算法的改进算法
function orderList(obj,order,desc) {
var chg = null;
var flag = true; //是否进行过交换的标志
var m = null;
var n = null;
var len = obj.options.length - 1;
for (var j=len;j>0;j--) {
flag = true;
for (var k=0;k<j;k++) {
eval("m = parseFloat(obj.options[k]." + order + ");");
eval("n = parseFloat(obj.options[k+1]." + order + ");");
if (desc) { //如果是倒序排列,则交换m和n
var tt = m;
m = n;
n = tt;
}
if (m > n) { //如果m > n 交换两个选项
chg = obj.options[k].cloneNode(false);
chg.text = obj.options[k].text;
obj.options[k] = obj.options[k+1].cloneNode(false);
obj.options[k].text = obj.options[k+1].text;
obj.options[k+1] = chg.cloneNode(false);
obj.options[k+1].text = chg.text;
flag = false; //交换过,设为false
}
}
if (flag) break; //如果一次都没有交还,则退出
}
}
//事件处理
function doEvent(fromListId, toListId, isSelectAll) {
if(fromListId == toListId) return;
var fromList = document.getElementById(fromListId);
var toList = document.getElementById(toListId);
if (fromList == null || fromList.tagName != "SELECT" || toList == null || toList.tagName != "SELECT") return;
if (isSelectAll == true) { //如果需要全部选择
selectAll(fromList);
}
add(fromList, toList); //在toList中添加fromList中选中的项
deleted(fromList); //删除fromList移动到toList的选项
}
//处理单击事件
function doClick(fromListId, toListId, isAll) {
doEvent(fromListId, toListId, isAll);
}
//处理双击事件
function doDblClick(fromListId, toListId) {
doEvent(fromListId, toListId, false);
}
分享到:
相关推荐
ArcGIS for JS API是Esri公司提供的JavaScript库,用于构建地理信息系统(GIS)应用程序,特别是Web地图。通过自定义鼠标样式,可以提升用户体验,指示用户当前的操作模式,比如选择、测量、拖动等。 首先,我们来...
### JS List的contains方法与Array的contains方法的使用 在JavaScript中,`Array`是用于存储多个值的数据结构。然而,原生JavaScript并没有提供一个直接的`contains`方法来检查数组是否包含某个元素。通常情况下,...
for (String s : arr) { list.add(s); } ``` ### 代码示例 下面是一个完整的 Java 代码示例,展示了如何进行双向转换: ```java import java.util.ArrayList; import java.util.Arrays; import java.util.List; ...
通过以上介绍,我们了解了如何在前端使用JavaScript处理List对象数组并通过AJAX发送给后端,以及后端如何接收并处理这些数据。这在实际项目开发中是非常实用的技巧。希望本文能帮助到正在学习或实践这一技术的朋友。
### JavaScript for Beginners – 关键知识点概述 #### 一、基础知识 - **JavaScript**:一种广泛应用于网页开发中的脚本语言,常用于实现网页交互性,提高用户体验。 - **HTML页面**:HTML(HyperText Markup ...
本篇文章将详细讲解如何进行CheckBoxList的操作,包括获取选中项、实现全选、取消选中以及反选功能,并结合JavaScript进行交互式操作。 首先,我们来了解`CheckBoxList`的基本结构。在ASP.NET中,CheckBoxList控件...
vue-animated-list, 一个 Vue.js 插件,用于轻松设置 `v for` 渲染列表的动画 vue-animated-list注意:这个插件仅用于 Vue 。 Vue 2.0支持将动画移出框。一个 Vue.js 插件,用于轻松设置 v-for 渲染列表的动画。现场...
for (let item of listItems) { console.log(item.innerText); } ``` 5. **使用`Array.from()`转换** - 如果希望使用数组方法,如`forEach`,可以先将`NodeList`转换为数组。`Array.from()`方法可以做到这一点...
开发者可能使用各种编程语言(如JavaScript、Python、C++等)来解析和处理这些XML数据,构建BlockList功能。解析XML的过程通常涉及DOM(文档对象模型)、SAX(简单API for XML)或XPath(XML路径语言)等技术。 ...
for (Map.Entry, Integer> entry : map.entrySet()) { keys.add(entry.getKey()); values.add(entry.getValue()); } System.out.println("Entry List: " + entryList); System.out.println("Keys: " + keys);...
在JSP页面中使用JavaScript处理从服务器返回的LIST集合是一个常见的需求,特别是在构建动态Web应用时。这篇博客文章(https://topbox163.iteye.com/blog/660431)可能探讨了如何有效地实现这一功能。在本文中,我们...
Vue.js 是一款轻量级的前端JavaScript框架,它以其易用性、灵活性和高效性而备受开发者喜爱。在"Vuejs+tolist"这个项目中,我们很显然关注的是如何使用Vue.js来创建一个待办事项(To-Do List)应用程序。下面我们将...
在完成以上步骤后,为了使Tomcat服务器识别API,还需要在Tomcat的配置文件web.xml中添加欢迎页面(welcome-file-list)设置,如添加index.jsp,这样当访问服务器根路径时,会默认加载这个页面。 启动Tomcat服务器,...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据交互。在描述的场景中,“json嵌套list”指的是JSON对象中包含一个或多个列表(数组)的情况,这种结构允许我们存储复杂的数据集合...
for (User user : userList) { System.out.println("Name: " + user.getName() + ", Age: " + user.getAge()); } } catch (Exception e) { e.printStackTrace(); } } } ``` 在上述代码中,`readValue`方法...
1、由后台action 传给前台是需要将map 转成json格式 代码如下: Map<String> resultMap; JSONObject json = JSONObject.fromObject(resultMap);...for(var key in obj){ //第一层循环取到各个list var
2. **增强用户体验**:使用CSS和JavaScript增强界面的交互性和美观度。 3. **确保安全性**:在处理用户输入时,必须对数据进行验证和清理,防止SQL注入等攻击。 综上所述,`CheckBoxList`是一个非常实用且灵活的...
<a href="javascript:void(0);" id="" onclick="searchpropery(this);">${var3} ``` 这段代码展示了如何遍历嵌套的List。外层的`c:forEach`遍历了`ppList`中的每个`ProductProperty`对象,而内层的`c:...
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一个子集...
【标签】:"js" 和 "游戏" 这两个标签虽然看似关联性不大,但在实际开发中,JavaScript不仅用于创建功能性的网页应用,也常被用于制作各种类型的游戏。这里的“游戏”可能指的是通过JavaScript实现的一些交互元素,...