学习要点:
1.字符串操作
2.数组和对象操作
3.测试操作
4.URL 操作
5.浏览器检测
6.其他操作
工具函数是指直接依附于 jQuery 对象,针对 jQuery 对象本身定义的方法,即全局性的函数。它的作用主要是提供比如字符串、数组、对象等操作方面的遍历。
一.字符串操作
在 jQuery 中,字符串的工具函数只有一个,就是去除字符串左右空格的工具函数:$.trim()。
//$.trim()去掉字符串两边空格 var str = ' jQuery '; alert(str); alert($.trim(str));
二.数组和对象操作
jQuery 为处理数组和对象提供了一些工具函数, 这些函数可以便利的给数组或对象进行遍历、筛选、搜索等操作。
//$.each()遍历数组 var arr = ['张三', '李四', '王五', '马六']; $.each(arr, function (index, value) { $('#box').html($('#box').html() + index + '.' + value + '<br />'); });
//$.each()遍历对象 $.each($.ajax(), function (name, fn) { $('#box').html($('#box').html() + name + '.' + '<br /><br />'); })
注意:$.each()中 index 表示数组元素的编号,默认从 0 开始。
//$.grep()数据筛选 var arr = [5,2,9,4,11,57,89,1,23,8]; var arrGrep = $.grep(arr, function (element, index) { return element < 6 && index < 5; }); alert(arrGrep);
注意:$.grep()方法的 index 是从 0 开始计算的。
//$.map()修改数据 var arr = [5,2,9,4,11,57,89,1,23,8]; var arrMap = $.map(arr, function (element, index) { if (element < 6 && index < 5) { return element + 1; } }); alert(arrMap);
//$.inArray()获取查找到元素的下标 var arr = [5,2,9,4,11,57,89,1,23,8]; var arrInArray = $.inArray(1, arr); alert(arrInArray);
注意:$.inArray()的下标从 0 开始计算。
//$.merge()合并两个数组 var arr = [5,2,9,4,11,57,89,1,23,8]; var arr2 = [23,2,89,3,6,7]; alert($.merge(arr, arr2));
//$.unique()删除重复的 DOM 元素 <div></div> <div></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div></div>
var divs = $('div').get(); divs = divs.concat($('.box').get()); alert($(divs).size()); $.unique(divs); alert($(divs).size());
//.toArray()合并多个 DOM 元素组成数组 alert($('li').toArray());
三.测试操作
在 jQuery 中,数据有着各种类型和状态。有时,我们希望能通过判断数据的类型和状态做相应的操作。jQuery 提供了五组测试用的工具函数。
//判断是否为数组对象 var arr = [1,2,3]; alert($.isArray(arr));
//判断是否为函数 var fn = function () {}; alert($.isFunction(fn));
//判断是否为空对象 var obj = {} alert($.isEmptyObject(obj));
//判断是否由{}或 new Object()创造出的对象 var obj = window; alert($.isPlainObject(obj));
注意:如果使用 new Object('name');传递参数后,返回类型已不是 Object,而是字符串,所以就不是纯粹的原始对象了。
//判断第一个 DOM 节点是否含有第二个 DOM 节点 alert($.contains($('#box').get(0), $('#pox').get(0)));
//$.type()检测数据类型 alert($.type(window));
//$.isNumeric 检测数据是否为数值 alert($.isNumeric(5.25));
//$.isWindow 检测数据对象是否为 window 对象 alert($.isWindow(window));
四.URL 操作
URL 地址操作,在之前的 Ajax 章节其实已经讲到过。只有一个方法:$.param(),将对象的键值对转化为 URL 键值对字符串形式。
//$.param()将对象键值对转换为 URL 字符串键值对 var obj = { name : 'Lee', age : 100 }; alert($.param(obj));
五.浏览器检测
由于在早期的浏览器中,分 IE 和 W3C 浏览器。而 IE678 使用的覆盖率还很高,所以,早期的 jQuery 提供了$.browser 工具对象。而现在的 jQuery 已经废弃删除了这个工具对象,如果还想使用这个对象来获取浏览器版本型号的信息,可以使用兼容插件。
//获取火狐浏览器和版本号 alert($.browser.mozilla + ':' + $.browser.version);
注意:火狐采用的是 mozilla 引擎,一般就是指火狐;而谷歌 Chrome 采用的引擎是webkit,一般验证 Chrome 就用 webkit。
还有一种浏览器检测,是对浏览器内容的检测。比如:W3C 的透明度为 opacity,而 IE的透明度为 alpha。这个对象是$.support。
//$.support.ajax 判断是否能创建 ajax alert($.support.ajax);
//$.support.opacity 设置不同浏览器的透明度 if ($.support.opacity == true) { $('#box').css('opacity', '0.5'); } else { $('#box').css('filter', 'alpha(opacity=50)'); }
注意:由于 jQuery 越来越放弃低端的浏览器,所以检测功能在未来使用频率也越来越低。所以,$.brower 已被废弃删除,而$.support.boxModel 检测 W3C 或 IE 盒子也被删除。
并且 http://api.jquery.com/jQuery.support/官网也不提供属性列表和解释,给出一个 Modernizr第三方小工具来辅组检测。
六.其他操作
jQuery 提供了一个预备绑定函数上下文的工具函数:$.proxy()。这个方法,可以解决诸如外部事件触发调用对象方法时 this 的指向问题。
//$.proxy()调整 this 指向 var obj = { name : 'Lee', test : function () { alert(this.name); } }; $('#box').click(obj.test); //指向的 this 为#box 元素 $('#box').click($.proxy(obj, 'test')); //指向的 this 为方法属于对象 box
相关推荐
我们将以“第14章 工具函数(上)”为主题,结合标签“源码”和“工具”,深入讨论这一关键的编程概念。 工具函数通常被封装在库或模块中,便于其他代码调用。它们可以处理各种任务,如字符串操作、日期时间处理、...
在编程领域,工具函数是那些被广泛用于各种任务的通用函数,它们通常被设计成可重用的模块,以提高代码的效率和可维护性。本章将深入探讨工具函数的下部分内容,聚焦于源码解析和实际应用。在本节中,我们将不涉及...
第14章 格式化输入输出函数 第15章 文件及目录函数 第16章 信号函数 第17章 错误处理函数 第18章 管道相关函数 第19章 socket相关函数 第20章 进程通信(IPC)函数 第21章 记录函数 第22章 环境变量函数 第23章 正则...
《电路课件第14章网络函数》主要探讨了电路理论中的网络函数及其在分析电路动态行为中的应用。网络函数是电路分析中的一个重要概念,它描述了电路对输入信号的响应特性。 网络函数,通常表示为H(S),是电路中输出与...
在本章"特殊函数计算"中,我们主要探讨的是数学中的非平凡函数,这些函数在物理学、工程学、概率统计等多个领域有着广泛的应用。以下是针对压缩包文件中提及的几个关键函数的详细解释: 1. **贝塞尔函数** (Bessel ...
《数学分析》第十八章主要探讨的是隐函数定理及其应用。隐函数定理是多元微积分中的核心概念,它揭示了如何从一个或多个方程式中定义一个新的函数,即使这个函数没有直接显式的形式。 隐函数的概念是通过方程式来...
本章主要介绍了“一次函数”的概念,通过一系列问题探究了变量与常量在实际问题中的应用。一次函数通常表示两个变量之间存在线性关系,其中一个变量随着另一个变量的变化而变化。 1. 变量与常量:变量是在特定情境...
### 03 第五章 SQL函数 #### 一、概览 本章节主要介绍了SQL中的各种函数,包括数字函数、字符函数、日期函数、转换函数以及Oracle 10g新增的一些特殊函数。这些函数在数据库操作中极为常见,能够帮助用户进行数据...
总之,"Office 2007办公应用完全自学视频教程第14章——公式与函数"是一个全面且深入的资源,无论你是刚开始接触Excel还是希望提升现有技能,都能从中受益。通过观看这些视频,你将能掌握Excel 2007中公式和函数的...
本章重点讨论了Oracle中的函数,包括字符串函数、数学函数、日期函数、聚合函数、运算表达式、特殊判式以及高级函数如分析函数和窗口函数。下面将详细阐述这些函数的使用。 14.1 Oracle中的字符串函数: - `lpad()`...
**第14章 数字处理技术** 在这一章,我们学习了如何利用Excel的函数来处理数字数据。这包括但不限于使用ROUND、TRUNC、FLOOR和CEILING函数进行四舍五入或截断,用ABS函数求绝对值,以及用MOD函数计算两个数的余数。...
高中数学中的第四章主要探讨了指数函数、对数函数与幂函数的概念及其应用。这部分内容在2019-2020学年的新人教B版必修第二册教材中,涉及了三个关键主题:增长速度的比较、函数的应用以及数学建模活动——生长规律的...
第14章 使用数据透视表分析数据 第15章 使用Excel商业建模工具 第16章 使用回归分析跟踪趋势及进行预测 第17章 使用“规划求解”求解复杂问题 第四部分 建立财务公式 第18章 建立贷款公式 第19章 建立投资公式 第20...
解答题部分,如第十四题,要求通过已知条件建立 `y` 与 `x` 的关系,这通常涉及到正比例和反比例函数的组合;第十五题,三角形面积公式与边长和高之间的关系,可以构建反比例函数;第十六题,要求确定函数解析式,并...
最后,第十三题中的φ(x)是由两个已知函数f(x)=log2x的复合函数,其定义域由f(x)和f(2x)的定义域共同决定,需要理解复合函数的定义域计算规则。 这些题目涵盖了函数的基本概念、性质、图像分析、定义域和值域的确定...
【科学备考】(新课标)2015高考数学二轮复习的第四章主要聚焦在三角函数及其三角恒等变换上,特别是三角函数的最值问题和综合应用。这部分内容对于理科学生来说至关重要,因为它涉及到高考的重要考点。 首先,三角...
在八年级数学下册的第二十章中,我们学习了函数的表示,特别是关于函数图像及其画法。这部分内容对于理解和应用函数至关重要。函数的图像能够直观地展示两个变量之间的关系,例如在第一道题目中,通过路程与时间的...
第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 用户管理 第二十四章...
第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 用户管理 ...