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

第14章 工具函数

 
阅读更多

学习要点:
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

 

  • 大小: 30.3 KB
  • 大小: 22.3 KB
  • 大小: 11.1 KB
  • 大小: 54 KB
分享到:
评论

相关推荐

    第14章 工具函数(上)

    NULL 博文链接:https://onestopweb.iteye.com/blog/2227921

    第14章 工具函数(下)

    NULL 博文链接:https://onestopweb.iteye.com/blog/2227924

    Linux下C编程函数手册/linux下C编程必备函数大全

    第14章 格式化输入输出函数 第15章 文件及目录函数 第16章 信号函数 第17章 错误处理函数 第18章 管道相关函数 第19章 socket相关函数 第20章 进程通信(IPC)函数 第21章 记录函数 第22章 环境变量函数 第23章 正则...

    EXCEL.2007公式与函数完全剖析.rar

    第14章 使用数据透视表分析数据 第15章 使用Excel商业建模工具 第16章 使用回归分析跟踪趋势及进行预测 第17章 使用“规划求解”求解复杂问题 第四部分 建立财务公式 第18章 建立贷款公式 第19章 建立投资公式 第20...

    Oracle教程 超详细

    第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 用户管理 第二十四章...

    Oracle超详细教程

    第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 用户管理 ...

    详细orale教程

    第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 ...

    信永国际 中文超详细Oracle教程

    第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 用户管理 ...

    Oracle详细教程

    第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL. 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 用户管理 第二十四...

    ORACLE详细教程

    第十四章 约束 第十五章 视图 第十六章 索引 第十七章 序列、同义词 第十八章 PL SQL. 第十九章 游标、函数 第二十章 存储过程 第二十一章 触发器 第二十二章 事务(数据库系统概论) 第二十三章 用户管理 第二十四...

    ORACLE__SQL语句教学

    ORACLE__SQL语句教学 引言 3 ...第二十四章 备份 恢复 SQLLoader 104 第二十五章 数据库设计范式 106 第二十六章 数据库设计工具 107 第二十七章 对象关系数据库系统 112 第二十八章 其他数据库 113

    21天学会VB编程pp教程

    21学会vb编程 第一章概述 ...第十四章WIN32API函数 第十五章ActiveX控件 第十六章程序调试与除错 第十七章数据库系统与SQL语言 第十九章VB与数据库编程 第二十章数据报表生成 第二十一章人事管理系统开发实例

    Linux与UNIX Shell编程指南.rar

    第十四章 环境和SHELL变量 第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 ...

    shell编程指南,shell脚本,本书共分五部分全。grep家族,sed,AWK,正则表达式,tr用法

    第14章 环境和shell变量 132 第15章 引号 146 第四部分 基础shell编程 第16章 shell脚本介绍 151 第17章 条件测试 154 第18章 控制流结构 160 第19章 shell函数 202 第20章 向脚本传递参数 224 第21章 创建屏幕输出...

    精通MATLAB—综合辅导与指南

    第14章 富里哀分析 第15章 低级文件I/O 第16章 调试工具 第17章 二维图形 第18章 三维图 第19章 颜色 第20章 句柄图 第21章 创建图形用户界面 文件 21.11 小结 第22章 符号数学工具箱 非常详细!

    重构-改善既有代码的设计

    重构 改善既有代码的设计目录 第1章 重构,第一个案例 1 第2章 重构原则 53 第3章 代码的坏味道 75 第4章 构筑测试体系 89 第5章 重构列表 103 ...第14章 重构工具 401 第15章 总结 409

    精通WindowsAPI 函数 接口 编程实例

    第14章 网络通信与配置 443 14.1 Socket通信 444 14.1.1 客户端 444 14.1.2 服务端 449 14.1.3 处理并发的客户端连接 455 14.1.4 网络通信的异步I/O模式 456 14.2 IP Helper 456 第15章 程序安装与...

    数据库程序设计(共22章-PPT格式),内容很不错

    第1章 SQL Server 概述 ...第14章 创建和维护索引 第15章 实现视图 第16章 实现存储过程 第17章 实现用户定义函数 第18章 实现触发器 第19章 多服务器编程 第20章 优化查询性能 第21章 分析查询 第22章 管理事务和锁

    C++primer 课后题答案

    C++primer 课后题答案 目录 第一章 快速入门 2 ...第十四章 重载操作符与转换 102 第十五章 面向对象编程 116 第十六章 部分选做习题 133 第十七章 用于大型程序的工具 138 第十八章 特殊工具与技术 138

    Linux命令学习 shell pdf格式

    第十四章 环境和shell变量 第十五章 引号 第四部分 基础shell编程 第十六章 shell脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 shell函数 第二十章 向脚本传递参数 第二十一章 创建屏幕输出 第二十二...

Global site tag (gtag.js) - Google Analytics