`
ferreousbox
  • 浏览: 287115 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

实用的JS工具类(二)——Select操作类

    博客分类:
  • AJAX
阅读更多

    再来第二个使用类,select元素的操作使用类。针对网页中select元素的操作实用类(静态方法)

js 代码
  1. /**-----------------------------------------------------------------------  
  2. * ------------------------针对select操作的实用Select类-------------------  
  3. * -----------------------------------------------------------------------  
  4. */  
  5. function Select(){};   
  6. /**  
  7. * 根据指定的JSON对象来生成指定的select的options项(清除原来的options).  
  8. */  
  9. Select.create = function(/*string*/selectId,/*json object*/json) {   
  10.     Select.clear(selectId);   
  11.     Select.add(selectId, json);   
  12. };   
  13. /**  
  14. * 该方法同create,只不过是在原来的基础上进行追加  
  15. */  
  16. Select.add = function(/*string*/selectId,/*json object*/json) {   
  17.     try {   
  18.         if (!json.options) return;   
  19.         for (var i = 0; i < json.options.length; i ++) {   
  20.             Select.addOption(selectId,json.options[i].value,json.options[i].text);   
  21.         }   
  22.     } catch (ex) {   
  23.         alert('设置select错误:指定的JSON对象不符合Select对象的解析要求!');   
  24.     }   
  25. };   
  26. /**  
  27. * 创建一个options并返回  
  28. */  
  29. Select.createOption = function(/*string*/value, /*string*/text) {   
  30.     var opt = document.createElement('option');   
  31.     opt.setAttribute('value', value);   
  32.     opt.innerHTML = text;   
  33.     return opt;   
  34. };   
  35. /**  
  36. * 给指定的select添加一个option,并返回当前option对象  
  37. */  
  38. Select.addOption = function(/*string*/selectId, /*string*/value, /*string*/text) {   
  39.     var opt = Select.createOption(value, text);   
  40.     $(selectId).appendChild(opt);   
  41.     return opt;   
  42. };   
  43. /**  
  44. * 获取指定select的当前被选中的options对象,如果为多选且有多个被选中则返回数组.  
  45. */  
  46. Select.getSelected = function(/*string*/selectId) {   
  47.     var slt = $(selectId);   
  48.     if (!slt) return null;   
  49.     if (slt.type.toLowerCase() == "select-multiple") {   
  50.         var len = Select.len(selectId);   
  51.         var result = [];   
  52.         for (var i = 0; i < len; i ++) {   
  53.             if (slt.options[i].selected) result.push(slt.options[i]);   
  54.         }   
  55.         return result.length > 1 ? result : (result.length == 0 ? null : result[0]);   
  56.     } else {   
  57.         var index = $(selectId).selectedIndex;   
  58.         return $(selectId).options[index];   
  59.     }   
  60. };   
  61. /**  
  62. * 使指定索引位置的option被选中.从0开始.  
  63. */  
  64. Select.select = function(/*string*/selectId, /*int*/index) {   
  65.     var slt = $(selectId);   
  66.     if (!slt) return false;   
  67.     for (var i = 0; i < slt.options.length; i ++) {   
  68.         if (index == i) {   
  69.             slt.options[i].setAttribute("selected""selected");   
  70.             return true;   
  71.         }   
  72.     }   
  73.     return false;   
  74. };   
  75. /**  
  76. * 选中指定的select的所有option选项,如果支持多选的话  
  77. */  
  78. Select.selectAll = function(/*string*/selectId) {   
  79.     var len = Select.len(selectId);   
  80.     for (var i = 0; i < len; i ++) Select.select(selectId, i);   
  81. };   
  82. /**  
  83. * 获取指定select的总的options个数  
  84. */  
  85. Select.len = function(/*string*/selectId) {   
  86.     return $(selectId).options.length;   
  87. };   
  88. /**  
  89. * 清除select中满足条件的options,如果没有指定处理方法则清除所有options项  
  90. */  
  91. Select.clear = function(/*string*/selectId, /*function*/iterator) {   
  92.     if (typeof(iterator) != 'function') {   
  93.         $(selectId).length = 0;   
  94.     } else {   
  95.         var slt = $(selectId);   
  96.         for (var i = slt.options.length - 1; i >= 0; i --) {   
  97.             if (iterator(slt.options[i]) == true) slt.removeChild(slt.options[i]);   
  98.         }   
  99.     }   
  100. };   
  101. /**  
  102. * 复制指定的select的option对象到另外一指定的select对象上.如果指定了处理  
  103. * 函数,那么只有返回true时才会copy.  
  104. * 函数iterator参数:当前处理的option对象、目标select的options数组  
  105. */  
  106. Select.copy = function(/*string*/srcSlt, /*string*/targetSlt, /*function*/iterator) {   
  107.     var s = $(srcSlt), t = $(targetSlt);   
  108.     for (var i = 0; i < s.options.length; i ++) {   
  109.         if (typeof(iterator) == 'function') {   
  110.             if (iterator(s.options[i], $(targetSlt).options) == true) {   
  111.                 t.appendChild(s.options[i].cloneNode(true));   
  112.             }   
  113.         } else {   
  114.             t.appendChild(s.options[i].cloneNode(true));   
  115.         }   
  116.     }   
  117. };   
分享到:
评论

相关推荐

    sql.zip_operation_操作数据库的工具类

    `sql.zip_operation_操作数据库的工具类`这个主题涉及到的是一个专门用于处理数据库查询和操作的Java工具类——`sqlHelper.java`。这个工具类简化了与数据库交互的过程,提高了代码的可读性和可维护性。 首先,我们...

    C#全能速查宝典

    2.1.5 Computer类——提供操作计算机组件的属性 129 2.1.6 ComputerInfo类——获取计算机信息 130 2.1.7 Control类——定义控件基类 131 2.1.8 Environment类——提供当前环境和平台的信息 134 2.1.9 Form窗体——...

    数据库原理及应用A实验报告(实验二——数据查询)

    数据库原理及应用A实验报告(实验二——数据查询)详细解析 实验报告旨在让学生通过实践掌握数据库查询的基本技能,包括查询语句的编写、单表查询、连接查询、集合查询、统计查询和嵌套查询。实验环境是Windows10...

    安卓Andriod源码——操作数据库实例.zip

    在Android开发中,数据库是应用程序存储和管理数据的重要工具。Android系统主要支持SQLite数据库,它是一个轻量级的关系型数据库,适用于移动设备的资源限制。本资料“安卓Andriod源码——操作数据库实例.zip”提供...

    JDBC工具类

    ### JDBC工具类——DBUtils详解 #### 一、概述 在Java编程中,数据库操作是一项常见且基础的任务。然而,直接使用JDBC进行数据库交互时,我们常常会遇到大量重复的代码片段,如连接数据库、执行SQL语句、处理结果...

    实用sql语句——很具体、例子化

    在IT行业中,SQL(Structured Query Language)是一种用于管理和操作关系数据库的强大工具。它允许我们查询、更新、插入和删除数据,以及执行各种复杂的分析任务。本篇将详细讲解标题和描述中涉及的几个实用SQL知识...

    黑月ADODB数据库操作类1.33版易语言模块源码

    本模块——"黑月ADODB数据库操作类1.33版易语言模块源码",是针对易语言设计的一个专门用于ADODB(ActiveX Data Objects Database)数据库操作的工具,旨在简化数据库操作,提高开发效率。 ADODB是微软提供的一种...

    Spring学习心得(二)——日志和数据库

    在本文中,我们将深入探讨这两个关键领域,并基于给出的"Spring学习心得(二)——日志和数据库"这个标题进行详细的阐述。 首先,让我们从日志开始。在Java应用程序中,日志系统扮演着调试、监控和问题排查的关键角色...

    java连接oracle数据库———sqlHelper类

    这个工具类的目的是简化数据库操作,减少重复代码,提高代码的可读性和可维护性。通过自定义`sqlHelper`类,开发者可以根据实际需求添加更多功能,如缓存管理、性能监控等,进一步提升开发效率。

    Jena本体操纵类(1)——本体文件读取

    在"Jena本体操纵类(1)——本体文件读取"这个主题中,我们将深入探讨如何使用Jena库来读取和解析本体文件。 首先,Jena提供了OntModel接口,这是处理本体的核心。OntModel不仅可以存储本体信息,还能执行查询和推理...

    Android SQLite学习工具

    这篇博客“Android SQLite学习工具”可能详细介绍了如何在Android环境中使用SQLite进行数据操作,并提供了一个实用的SQLite管理工具——sqlite3.exe。 SQLite数据库在Android中的应用主要包括创建数据库、创建表、...

    Java笔试题————精华中的精华

    求职者应熟悉DOM操作、事件处理、AJAX异步通信,以及如今流行的JavaScript库和框架,如jQuery、React或Vue。 算法和数据结构是编程的灵魂,包括排序、查找、递归、图论等,它们在解决复杂问题时起到关键作用。对...

    ASP.NET源码——南充人NET3.5 LINQ操作数据库实例.zip

    ASP.NET是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地构建动态网站、Web服务以及Web应用程序。本压缩包中的"ASP.NET源码——南充人NET3.5 LINQ操作数据库实例.zip...

    基于jQuery美化的JS Select下拉列表菜单

    四、jQuery插件——Select2 Select2是另一个强大的Select元素美化工具,它具有更多高级特性,如远程数据加载、自动补全、多选分组等。使用Select2的基本流程与Chosen类似: 1. 引入jQuery和Select2的CSS、...

    SQL优化方案——性能优化

    为了利用索引,应当尽量避免这类操作。 **扩展知识点:** - **表达式优化**: 了解表达式的优化技巧可以帮助编写更高效的SQL语句。 - **函数操作**: 某些数据库管理系统支持索引上的函数操作,但在大多数情况下,这些...

    SQL操作全集——常用的SQL语句

    它包含了三大类操作:DDL(Data Definition Language,数据定义语言)、DML(Data Manipulation Language,数据操纵语言)和DCL(Data Control Language,数据控制语言)。 1. DDL:用于创建和修改数据库结构。...

    学生成绩管理系统——C语言

    【学生成绩管理系统——C语言】是一个使用C语言编写的课程设计项目,旨在帮助学习者深化C语言基础知识,提升分析和解决问题的能力。该系统的主要目标是让学生掌握如何独立编写、调试C语言应用程序,并进行相关的设计...

    高教类课件:数据库技术及应用——SQL Server.zip

    《数据库技术及应用——SQL Server》是一门高等教育课程,旨在教授学生如何使用SQL Server这一强大的关系型数据库管理系统。SQL Server是Microsoft公司推出的一款广泛应用于数据存储、管理和分析的软件,尤其在企业...

    数据库连接(csdn)————程序.pdf

    这类软件通常提供图形化的界面和工具,帮助用户轻松管理数据库。通过Navicat,用户可以执行数据操作,如连接数据库、设计数据库结构、管理数据库对象、执行SQL语句、备份恢复数据等,从而简化了数据库的管理工作。 ...

Global site tag (gtag.js) - Google Analytics