`
ferreousbox
  • 浏览: 284622 次
  • 性别: 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. };   
分享到:
评论

相关推荐

    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窗体——...

    精通JS脚本之ExtJS框架.part1.rar

    15.5.2 IE下的优秀JavaScript调试工具Companion.JS 15.5.3 DebugBar和Companion.JS的基本操作 15.6 调试技巧 15.6.1 在Firebug中直接调试脚本 15.6.2 调试代码运行速度 15.6.3 查看对象属性 第16章 ExtJS案例...

    精通JS脚本之ExtJS框架.part2.rar

    15.5.2 IE下的优秀JavaScript调试工具Companion.JS 15.5.3 DebugBar和Companion.JS的基本操作 15.6 调试技巧 15.6.1 在Firebug中直接调试脚本 15.6.2 调试代码运行速度 15.6.3 查看对象属性 第16章 ExtJS案例...

    php网络开发完全手册

    6.3 本地文件的操作实例——小型留言本 96 6.3.1 留言发表模块 96 6.3.2 浏览模块 98 6.4 远程文件的操作实例 99 6.5 文件的上传与下载 99 6.5.1 文件的上传 99 6.5.2 文件的下载 100 6.6 小结 101 第7章 字符的处理...

    cmd操作命令和linux命令大全收集

    3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP 中均可使用,但在 Windows 98 中却没有集成这一个工具。 4. explorer-------打开...

    protel2004封装

    电容:电容分普通电容和贴片电容:普通电容在Miscellaneous Devices.IntLib库中找到,它的种类比较多,总的可以分为二类,一类是电解电容,一类是无极性电容,电解电容由于容量和耐压不同其封装也不一样,电解电容...

    asp.net知识库

    常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN...

    day01_eesy_01mybatis.zip

    Spring的JdbcTemplate和Apache的DBUtils都只是工具类 4.mybatis的概述 mybatis是一个持久层框架,用java编写的。 它封装了jdbc操作的很多细节,开发者只需要关注sql语句本身,无需关注注册驱动,创建连接等繁杂...

    Ext Js权威指南(.zip.001

    1.4 ext js的开发工具的获取、安装与配置介绍 / 18 1.4.1 ext designer / 18 1.4.2 在visual studio中实现智能提示 / 23 1.4.3 spket / 28 1.4.4 在eclipse中实现智能提示 / 32 1.5 如何获得帮助 / 32 1.6 本...

    LINQ 实战 1/11

    10.2.1 使用Select进行投影 273 10.2.2 使用Where实现过滤 274 10.2.3 排序和分组 275 10.3 使用XPath查询LINQ to XML对象 278 10.4 转换XML 279 10.4.1 LINQ to XML转换 279 10.4.2 使用XSLT转换LINQ ...

    计算机应用技术(实用手册)

    实用手册 Xnllz 2011.7.29 目录 第一章COMS的设置 1 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 3 2.BIOS能功设定 5 3.Advanced Chipset Features...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例038 动态输出JavaScript代码 69 实例039 当数字遇到了字符串 70 实例040 PHP程序员的基础——变量的应用 72 实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例...

    Oracle数据库实验.rar

    2.熟悉和掌握使用 SQL Plus工具操作数据库; 3.熟悉 TOAD工具。 [实验内容 ] 1.使用 Oracle 的 TNS配置程序建立本地服务名; a.运行 Oracle的 TNS配置程序;(程序里面的 oracle目录下的 ...

    SQL Server数据库技术大全 电子书

    1.5 SQL Server 2008的其他工具/19 1.5.1 使用配置管理器配置数据库/19 1.5.2 使用SQL Server Profiler跟踪数据库/22 1.5.3 使用SQL Server 2008联机丛书/23 1.6 SQL Server 2008系统数据库简介/24 1.6.1 系统数据库...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    都可以通过列表下面的选择操作进行审核、生成等操作,根据各个管理列表,操作是一样的。下面如果不是特殊功能,就不在重复介绍。 重点说明:分类管理中[功能帮助]类别,初始建站都会遇到帮助中心的分类页无法更新...

    深入浅出 SQL (中文版).part1

    本书带你进入SQL语言的心脏地带,从使用INSERT和SELECT这些基本的查询语法到使用子查询(subquery)、连接(join)和事务(transaction)这样的核心技术来操作数据库。到读完本书之时,你将不仅能够理解高效数据库...

    计算机信息管理系统设计.doc

    系统应符合企业售后服务的规定,满足相关人员日常使用的需要 ,并达到操作过程中直观、方便、实用、安全的要求。系统采用模块化程序设计方法, 既便于系统功能的各种组合和修改,又便于未参与人员的技术维护人员进行...

    java初学者必看

    5.4 StringBuffer类操作 5.4.1 基本操作 5.4.2 字符串操作方法 5.4.3 添加append() 5.4.4 插入insert() 5.5 实例:字符串应用 5.6 本章习题 第6章 数组 6.1 一维数组 6.1.1 数组的概念 6.1.2 一维数组的...

    Delphi7.完美经典

    3-2 操作菜单方面的改进 3-2-1 外面方面的改变 3-2-2 内容方面的改变 3-3 对象检视器方面的改进 3-4 组件面板的改进 3-5 代码编辑器的改进 3-6 设计陈列室的改进 3-7 编译信息的显示 3-8 调试器方面的改进 ...

Global site tag (gtag.js) - Google Analytics