`
zachary.guo
  • 浏览: 490116 次
  • 性别: 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?"
分享到:
评论

相关推荐

    scratch少儿编程逻辑思维游戏源码-城堡战争.zip

    scratch少儿编程逻辑思维游戏源码-城堡战争.zip

    【Go语言编程】大厂Go工程师面试题集锦:涵盖并发、网络、数据库及算法设计要点

    内容概要:本文档汇集了来自字节跳动、腾讯、金山WPS、跟谁学和百度等大厂的Go工程师面试题,涵盖广泛的技术领域。主要包括Go语言特性(如goroutine调度、channel机制)、操作系统(进程间通信、线程调度)、计算机网络(TCP/IP协议栈、HTTP协议)、数据结构与算法(排序算法、LRU缓存)、数据库(MySQL索引优化、Redis内部机制)、分布式系统(负载均衡、服务发现)等方面的知识点。通过这些问题,不仅考察应聘者的理论基础,还测试其实际项目经验和技术深度。 适合人群:有一定Go语言编程经验和计算机基础知识的开发者,特别是准备应聘互联网大厂的中级及以上水平的后端工程师或全栈工程师。 使用场景及目标:①帮助求职者全面复习Go语言及其相关领域的核心概念;②为面试官提供有价值的参考题目,确保候选人具备解决复杂问题的能力;③指导工程师深入理解并掌握企业级应用开发所需的关键技能。 阅读建议:由于题目覆盖面广且难度较高,建议读者结合自身情况选择重点复习方向,同时配合实际编码练习加深理解。对于每个知识点,不仅要记住答案,更要理解背后的原理,这样才能在面试中灵活应对各种变体问题。

    scratch少儿编程逻辑思维游戏源码-堡垒之夜(吃鸡游戏).zip

    scratch少儿编程逻辑思维游戏源码-堡垒之夜(吃鸡游戏).zip

    少儿编程scratch项目源代码文件案例素材-派.zip

    少儿编程scratch项目源代码文件案例素材-派.zip

    scratch少儿编程逻辑思维游戏源码-Scratch 冒险.zip

    scratch少儿编程逻辑思维游戏源码-Scratch 冒险.zip

    2025 飞特舵机, Arduino版本

    2025 飞特舵机, Arduino版本

    scratch少儿编程逻辑思维游戏源码-躲避.zip

    scratch少儿编程逻辑思维游戏源码-躲避.zip

    PFC5.0纤维混凝土三点弯曲模拟:参数化建模与实验分析

    内容概要:本文详细介绍了利用PFC5.0进行纤维混凝土三点弯曲模拟的方法。首先,作者展示了如何通过定义纤维的体积含量、长度、半径和刚度等关键参数来构建纤维网络。接着,描述了三点弯曲加载的具体实现方式,包括加载速率控制和终止条件设定。最后,提供了后处理方法,如绘制并导出力-位移曲线图,以便于分析材料破坏机制。文中还给出了若干实用建议,如纤维半径的选择范围、加载速率的初始值以及不同类型纤维的接触模型选择。 适合人群:从事材料科学尤其是混凝土材料研究的专业人士,以及对离散元法和数值模拟感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解纤维混凝土力学性能的研究人员,旨在帮助他们掌握PFC5.0软件的操作技巧,优化模拟参数设置,提高实验效率。 其他说明:文中提供的代码片段可以直接应用于实际项目中,同时附带了一些实践经验分享,有助于初学者快速入门并避免常见错误。

    少儿编程scratch项目源代码文件案例素材-生存V1(有BAG).zip

    少儿编程scratch项目源代码文件案例素材-生存V1(有BAG).zip

    少儿编程scratch项目源代码文件案例素材-披萨机器人.zip

    少儿编程scratch项目源代码文件案例素材-披萨机器人.zip

    少儿编程scratch项目源代码文件案例素材-气球滑雪板.zip

    少儿编程scratch项目源代码文件案例素材-气球滑雪板.zip

    少儿编程scratch项目源代码文件案例素材-使命召唤(苏联插旗).zip

    少儿编程scratch项目源代码文件案例素材-使命召唤(苏联插旗).zip

    可跨平台移植的模拟IIC实战项目STM32F407-TestIIC

    1. GPIO模拟I2C 实战项目,根据正点原子 STM32F407ZGT6 进行更改; 2. 可适配STM32、GD32、HC32等MCU;

    scratch少儿编程逻辑思维游戏源码-百米冲刺.zip

    scratch少儿编程逻辑思维游戏源码-百米冲刺.zip

    【蓝桥杯竞赛】历年试题精选与备考资源汇总:编程算法及硬件单片机试题解析与练习指导

    内容概要:本文档汇总了蓝桥杯历年试题及练习资源,涵盖编程类试题精选、硬件与单片机试题、练习资源与题库以及备考建议。编程类试题精选包括基础算法题(如数组求和、质因数分解)、经典算法案例(如最大子序列和、兰顿蚂蚁模拟)和数据结构应用(如字符全排列)。硬件与单片机试题主要涉及客观题考点,如BUCK电路和电源设计。练习资源与题库部分介绍了真题平台(如Dotcpp、CSDN专题)和专项训练包(如Python题库、Java百题集、C++真题解析)。备考建议分为分阶段练习(新手阶段、进阶提升)和模拟实战(如使用Dotcpp估分系统进行限时训练),强调按年份和组别分类练习,强化代码实现与调试能力。; 适合人群:准备参加蓝桥杯竞赛的学生及编程爱好者。; 使用场景及目标:①针对不同编程语言和难度级别的题目进行专项训练;②通过历年真题和模拟实战提高解题速度和准确性;③掌握算法设计、数据结构应用及硬件基础知识。; 阅读建议:此文档提供了丰富的试题和练习资源,建议根据自身水平选择合适的题目进行练习,并结合真题平台的估分系统和社区开源代码进行对比优化,逐步提升编程能力和竞赛水平。

    30kW储能PCS原理图设计:量产设计的关键要素与优化策略

    内容概要:本文详细介绍了30kW储能PCS(电力转换系统)原理图的设计要点及其量产化过程中需要注意的技术细节。首先阐述了储能PCS的基本概念和重要性,接着深入探讨了主拓扑结构的选择,特别是双级式结构的优势以及关键组件如IGBT的驱动时序配置。随后讨论了控制算法的智能化改进,包括加入前馈补偿以提高系统的稳定性。此外,还强调了EMC设计、PCB布局、元件选择等方面的注意事项,并分享了一些实际生产中遇到的问题及解决方案。最后提到了自动化测试方法和散热管理策略,确保产品在各种环境下的可靠运行。 适合人群:从事储能系统设计、电力电子产品研发的工程师和技术人员。 使用场景及目标:帮助读者掌握30kW储能PCS从原理图设计到量产实施的全流程关键技术,提升产品的性能和可靠性,避免常见错误。 其他说明:文中提供了具体的代码片段和实践经验,有助于理解和应用相关理论。

    少儿编程scratch项目源代码文件案例素材-喷气包多德.zip

    少儿编程scratch项目源代码文件案例素材-喷气包多德.zip

    机械工程中基于Python的齿轮啮合性能与动态响应分析

    内容概要:本文深入探讨了齿轮啮合性能及其动态特性,特别是直齿轮的基础参数计算、渐开线绘制以及接触力仿真的具体实现。首先介绍了齿轮的基本参数如模数、齿数、压力角等,并给出了具体的计算实例。接着详细讲解了如何利用Python进行渐开线的数学建模并绘图展示,强调了这种曲线对于确保齿轮平稳传动的重要性。然后讨论了齿轮在啮合过程中接触力的变化规律,提供了简化的Python代码来模拟这一现象。最后指出,在实际工程项目中应当借助专业的软件包如PyDy或ADAMS来进行更加精确的动力学分析,同时肯定了自行编写代码的价值在于能够更好地理解和排查问题。 适合人群:机械工程领域的研究人员、工程师以及相关专业的学生。 使用场景及目标:①帮助读者掌握齿轮基本理论知识;②指导读者运用Python编程技能完成简单的齿轮性能分析任务;③为后续深入研究提供思路和技术支持。 阅读建议:由于文中涉及较多的专业术语和数学公式,建议读者提前复习相关基础知识,并尝试运行提供的代码片段加深理解。此外,对于想要进一步探索该领域的读者来说,可以参考文末提到的专业工具包进行更复杂的研究。

    少儿编程scratch项目源代码文件案例素材-任务.zip

    少儿编程scratch项目源代码文件案例素材-任务.zip

    少儿编程scratch项目源代码文件案例素材-时光大盗.zip

    少儿编程scratch项目源代码文件案例素材-时光大盗.zip

Global site tag (gtag.js) - Google Analytics