`
zachary.guo
  • 浏览: 483059 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jQuery 学习十四(工具函数)

阅读更多
    ●  jQuery.boxModel
/**
 * 当前页面中浏览器是否使用标准盒模型渲染页面。
 * 
 * @return Boolean 标准盒模型为 true,否则为 false
 * @owner jQuery Namaspace
 */

// 例子:在 Internet Explorer 怪癖模式(QuirksMode)中返回 false
$.boxModel


    ●  jQuery.browser
/**
 * 浏览器内核标识。依据 navigator.userAgent 判断。
 * 可用值:safari, opera, msie, mozilla
 *
 * 此属性在 DOM 树加载完成前即有效,可用于为特定浏览器设置 ready 事件。
 * 浏览器对象检测技术与此属性共同使用可提供可靠的浏览器检测支持。
 * 
 * @return Map
 * @owner jQuery Namaspace
 */

// 例子一:在 Microsoft's Internet Explorer 浏览器中返回 true。
$.browser.msie

// 例子二:仅在 Safari 中提示 "this is safari!" 。
if ($.browser.safari) {
   alert("this is safari!");
}


    ●  jQuery.browser.version
/**
 * 浏览器渲染引擎版本号。
 * 
 * 典型结果: 
 * Internet Explorer: 6.0, 7.0
 * Mozilla/Firefox/Flock/Camino: 1.7.12, 1.8.1.3
 * Opera: 9.20
 * Safari/Webkit: 312.8, 418.9
 * 
 * @return String
 * @owner jQuery Namaspace
 */

// 例子:显示当前 IE 浏览器版本号。
if ( $.browser.msie ) {
  alert( $.browser.version ); 
}


    ●  jQuery.each(obj, callback)
/**
 * 通用遍历方法,可用于遍历对象和数组。不同于遍历 jQuery 对象的 $().each() 方法,此方法可用于遍历
 * 任何对象。
 *
 * 回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。
 * 如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。
 * 
 * @obj(Object) 需要遍历的对象或数组
 * @callback(Function) (可选) 每个成员/元素执行的回调函数 
 * @return Object
 * @owner jQuery Namaspace
 */
jQuery.each(obj, callback);

// 例子一:遍历数组,同时使用元素索引和内容。
$.each( [0,1,2], function(i, n) {
  alert( "Item #" + i + ": " + n );
});

// 例子二:遍历对象,同时使用成员名称和变量内容
$.each( { name: "John", lang: "JS" }, function(i, n) {
  alert( "Name: " + i + ", Value: " + n );
});


    ●  jQuery.extend(target, obj1, [objN])
/**
 * 用一个或多个其他对象来扩展一个对象,返回被扩展的对象。用于简化继承。此方法也可以用来
 * 扩展 jQuery 的系统函数。
 * 
 * @target(Object) 待修改对象
 * @obj1(Object) 待合并到第一个对象的对象
 * @objN(Object) (可选) 待合并到第一个对象的对象
 * @return Object
 * @owner jQuery Namaspace
 */
jQuery.extend(target, obj1, [objN]);

// 例子一:合并 settings 和 options,修改并返回 settings。
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);

result: settings == { validate: true, limit: 5, name: "bar" }

// 例子二:合并 defaults 和 options, 不修改 defaults。
var empty = {}
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = jQuery.extend(empty, defaults, options);

result: settings == { validate: true, limit: 5, name: "bar" }
        empty    == { validate: true, limit: 5, name: "bar" }
        
// 例子三:扩展 jQuery 的系统函数,添加一名为 "hello" 的系统函数。
$.extend({
	hello: function(str) {
		return str + " hello"
	}
});

使用:$.hello("china") -> china hello


    ●  jQuery.grep(array, callback, [invert])
/**
 * 使用过滤函数过滤数组元素。
 *
 * 此函数至少传递两个参数:待过滤数组和过滤函数。过滤函数必须返回 true 以保留元素或 false 以删除元素
 * 
 * @array(Array) 待过滤数组
 * @callback(Function) 此函数将处理数组每个元素。第一个参数为当前元素,第二个参数为元素索引值。此函数
 *                     应返回一个布尔值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为
 *                     "lambda-form"(缩写形式 ?),其中 a 代表数组元素,i 代表元素索引值。
 *                     如 "a > 0" 代表 "function(a) { return a > 0; }"。
 * @invert(Boolean) (可选) 如果 "invert" 为 false 或未设置,则函数返回数组中由过滤函数返回
 *                  true 的 元素,当 "invert" 为 true,则返回过滤函数中返回 false 的元素集。
 * @return Array
 * @owner jQuery Namaspace
 */
jQuery.grep(array, callback, [invert]);

// 例子一:过滤数组中小于 0 的元素。
$.grep( [0, 1, 2], function(n, i) {
  return n > 0;
}); -> [1, 2]

// 例子二:排除数组中大于 0 的元素,使用第三个参数进行反向选择。
$.grep( [0, 1, 2], function(n, i) {
  return n > 0;
}, true); -> [0]


    ●  jQuery.inArray(value, array)
/**
 * 确定第一个参数在数组中的位置(如果没有找到则返回 -1)。
 * 
 * @value(Any) 用于在数组中查找是否存在的对象
 * @array(Array) 待处理数组
 * @return Integer
 * @owner jQuery Namaspace
 */
jQuery.inArray(value, array);

// 例子:删除重复 div 标签。
var arr = [ 4, "Pete", 8, "John" ];
jQuery.inArray("John", arr);  // 3
jQuery.inArray(4, arr);  // 0
jQuery.inArray("David", arr);  // -1


    ●  jQuery.makeArray(obj)
/**
 * 将类数组对象转换为数组对象。
 *
 * 类数组对象有 length 属性,其成员索引为 0 至 length - 1。实际中此函数在 jQuery 中将自动使用
 * 而无需特意转换。
 * 
 * @obj(Object) 类数组对象
 * @return Array
 * @owner jQuery Namaspace
 */
jQuery.makeArray(obj);

// 例子:
<div>First</div>
<div>Second</div>
<div>Third</div>
<div>Fourth</div> 

var arr = jQuery.makeArray(document.getElementsByTagName("div"));
arr.reverse(); // 使用数组翻转函数

Fourth
Third
Second
First


    ●  jQuery.map(array, callback)
/**
 * 将一个数组中的元素转换到另一个数组中。
 *
 * 作为参数的转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。
 * 转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组,并扩展至原始数组中。
 *
 * @array(Array) 待转换数组
 * @callback(Function) 为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。
 *                     函数可返回任何值。另外,此函数可设置为一个字符串,当设置为字符串时,将视
 *                     为 "lambda-form"(缩写形式 ?),其中 a 代表数组元素。如 "a * a" 代表
 *                     function(a) { return a * a; }"。
 * @return Array
 * @owner jQuery Namaspace
 */
jQuery.map(array, callback);

// 例子一:将原数组中每个元素加 4 转换为一个新数组。
$.map( [0, 1, 2], function(n) {
  return n + 4;
}); -> [4, 5, 6]

// 例子二:原数组中大于 0 的元素加 1,否则删除。
$.map( [0, 1, 2], function(n) {
  return n > 0 ? n + 1 : null;
}); -> [2, 3]

// 例子三:原数组中每个元素扩展为一个包含其本身和其值加 1 的数组,并转换为一个新数组。 
$.map( [0, 1, 2], function(n) {
  return [ n, n + 1 ];
}); -> [0, 1, 1, 2, 2, 3]


    ●  jQuery.unique(array)
/**
 * 删除数组中重复元素。
 *
 * @array(Array) 待转换数组
 * @return jQuery Object
 * @owner jQuery Namaspace
 */
jQuery.unique(array);

// 例子:删除重复 div 标签。
$.unique(document.getElementsByTagName("div")) -> [<div>, <div>, ...]


    ●  jQuery.isFunction(obj)
/**
 * 测试对象是否为函数。
 *
 * @obj(Object) 用于测试是否为函数的对象
 * @return Boolean
 * @owner jQuery Namaspace
 */
jQuery.isFunction(obj);

// 例子:检测是否为函数。
function stub() {}
var objs = [
  function() {},
  { x:15, y:20 },
  null,
  stub,
  "function"
];

jQuery.each(objs, function(i) {
  var isFunc = jQuery.isFunction(objs[i]);
  $("span:eq( " + i + ")").text(isFunc);
}); -> [ true, false, false, true, false ]


    ●  jQuery.trim(str)
/**
 * 去掉字符串起始和结尾的空格。
 *
 * @str(String) 需要处理的字符串
 * @return Boolean
 * @owner jQuery Namaspace
 */
jQuery.trim(str);

// 例子:去掉字符串起始和结尾的空格。
$.trim(" hello, how are you? ") -> "hello, how are you?"
分享到:
评论

相关推荐

    从零开始学习jQuery (九) jQuery工具函数

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 我们经常要使用脚本处理各种业务逻辑, 最...工具函数是指在jQuery对象(即变量

    jQuery使用手册 jquery入门教程

    jquery入门教程 从零开始学习jQuery (一) 开天辟地入门篇 ...从零开始学习jQuery (九) jQuery 工具函数 从零开始学习jQuery (十) jQueryUI 常用功能实战 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

    jquery 入门文档 从零开始学校jquery

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门...从零开始学习jQuery (九) jQuery工具函数 从零开始学习jQuery (十) jQueryUI常用功能实战 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件 整理发布

    从零开始学习jQuery-张子秋

    作者:张子秋 ...本文版权归作者和博客园共有,欢迎转载,但未经...从零开始学习jQuery (九) jQuery工具函数 从零开始学习jQuery (十) jQueryUI常用功能实战 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

    jQuery 工具函数学习资料

    jquery为我们提供了操作数组和对象的工具函数,方便和简化了我们对它们的操作。今天我们就进入jQuery的工具函数的复习。

    从零开始学习JQuery

    从零开始学习jQuery (九) jQuery工具函数 从零开始学习jQuery (十) jQueryUI常用功能实战 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很...

    jQuery源码分析-03构造jQuery对象-工具函数

    作者:nuysoft/高云 EMail:nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接。... 3.4 其他静态工具函数 代码如下: // 扩展工具函数 jQuery.extend({ // 释放$的 jQuery 控制

    jQuery权威指南-源代码

    再接着对jQuery UI和jQuery实用工具函数等扩展知识,以及jQuery的开发技巧与性能优化等方面的重要知识做了详尽的阐述;最后以两个具有代表性的综合案例结束全书,希望能帮助读者将前面所学的理论知识真正贯穿于实践...

    jQuery 1.4 中文手册(速查表) chm

    jQuery 1.4 中文手册(速查表) chm 学习jquery必备工具。查找jquery函数必备工具

    jQuery的学习步骤

    然后建议去看看 张子秋大哥的 从零开始学jQuery系列 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始... 从零开始学习jQuery (八) 插播:jQuery实施方案 从零开始学习jQuery (九) jQuery工具函数 从

    jQuery攻略.pdf

    《jQuery攻略》对使用jQuery [2] 过程中遇到的各类问题给出了解决方案,比如,如何使用jQuery框架、CSS选择器、DOM、事件处理、动画效果,以及如何开发Ajax应用程序、如何使用jQuery工具函数、如何使用插件扩展...

    jquery插件使用方法大全

    延迟对象 延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接的(chainable)实用工具对象,实现了Promise接口,可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。...

    查看源码的工具 学习jQuery源码不错的工具

    下面就让我分享我学习jQuery源码的时候使用的几个工具和应该了解的问题。 这个jquery源代码查看器,还不是很强大,只是能够简单的查看函数引用,但是不能返回。 我上这个网上下载下来了,准备改进一下,你们可以先...

    jQuery权威指南 带书签

    再接着对jquery ui和jquery实用工具函数等扩展知识,以及jquery的开发技巧与性能优化等方面的重要知识做了详尽的阐述;最后以两个具有代表性的综合案例结束全书,希望能帮助读者将前面所学的理论知识真正贯穿于实践...

    jquery权威指南高清文字版

    再接着对jquery ui和jquery实用工具函数等扩展知识,以及jquery的开发技巧与性能优化等方面的重要知识做了详尽的阐述;最后以两个具有代表性的综合案例结束全书,希望能帮助读者将前面所学的理论知识真正贯穿于实践...

    jQuery权威指南-配套源代码

    再接着对jQuery UI和jQuery实用工具函数等扩展知识,以及jQuery的开发技巧与性能优化等方面的重要知识做了详尽的阐述;最后以两个具有代表性的综合案例结束全书,希望能帮助读者将前面所学的理论知识真正贯穿于实践...

    jQuery权威指南

    再接着对jquery ui和jquery实用工具函数等扩展知识,以及jquery的开发技巧与性能优化等方面的重要知识做了详尽的阐述;最后以两个具有代表性的综合案例结束全书,希望能帮助读者将前面所学的理论知识真正贯穿于实践...

    JQUERY权威指南.zip.001

    再接着对jQuery UI和jQuery实用工具函数等扩展知识,以及jQuery的开发技巧与性能优化等方面的重要知识做了详尽的阐述;最后以两个具有代表性的综合案例结束全书,希望能帮助读者将前面所学的理论知识真正贯穿于实践...

Global site tag (gtag.js) - Google Analytics