jQuery常用工具方法
前面的话
jQuery提供一些与元素无关的工具方法,不必选中元素,就可以直接使用这些方法。如果理解原生javascript的继承原理,那么就能理解工具方法的实质。它是定义在jQuery构造函数上的方法,即jQuery.method(),所以可以直接使用。而那些操作元素的方法,是定义在构造函数的prototype对象上的方法,即jQuery.prototype.method(),所以必须生成实例(即选中元素)后使用。把工具方法理解成像javascript原生函数那样可以直接使用的方法就行了。下面将详细介绍jQuery的常用工具方法
元素相关
【each()】
它是一个通用的迭代函数,可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到 length - 1。其他对象通过其属性名进行迭代
jQuery.each( collection, callback(indexInArray, valueOfElement) )
jQuery.each()函数和 jQuery(selector).each()不一样,后者专门用来遍历一个jQuery对象。jQuery.each()函数可用于迭代任何集合,无论是“名/值”对象(JavaScript对象)或数组。在迭代数组的情况下,回调函数每次传递一个数组索引和相应的数组值作为参数。(该值也可以通过访问this关键字得到,但是JavaScript将始终将this值作为一个Object ,即使它是一个简单的字符串或数字值。)该方法返回其第一个参数,这是迭代的对象
$.each( ['a','b','c'], function(index,value){//Index #0: a//Index #1: b//Index #2: cconsole.log( "Index #" + index + ": " + value ); });
$.each( { name: "John", lang: "JS" }, function(index,value){//Index #name: John//Index #lang: JSconsole.log( "Index #" + index + ": " + value ); });
【contains()】
检查一个DOM元素是另一个DOM元素的后代
jQuery.contains( container, contained )
$.contains( document.documentElement, document.body ); // true
【extend()】
将两个或更多对象的内容合并到第一个对象
jQuery.extend( target [, object1 ] [, objectN ] ) target: Object 一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。 object1: Object 一个对象,它包含额外的属性合并到第一个参数 objectN: Object 包含额外的属性合并到第一个参数
$.extend({}, object1, object2);
jQuery.extend( [deep ], target, object1 [, objectN ] ) deep: Boolean 如果是true,合并成为递归(又叫做深拷贝)。 target: Object 对象扩展。这将接收新的属性。 object1: Object 一个对象,它包含额外的属性合并到第一个参数. objectN: Object 包含额外的属性合并到第一个参数
$.extend(true, object1, object2);
数据相关
【data()】
存储任意数据到指定的元素并且/或者返回设置的值
jQuery.data( element )
element:Element 要关联数据的DOM对象 key: String 存储的数据名 value:Object 新数据值
$.data(document.body, 'foo', 52); $.data(document.body, 'bar', 'test'); console.log($.data( document.body, 'foo' ));//52console.log($.data( document.body ));//{foo: 52, bar: "test"}
【removeData()】
删除一个先前存储的数据片段
jQuery.removeData( element [, name ] )
var div = $("div"); $.data(div, "test1", "VALUE-1"); $.data(div, "test2", "VALUE-2"); console.log($.data(div));//{test1: "VALUE-1", test2: "VALUE-2"}$.removeData(div, "test1"); console.log($.data(div));//{test2: "VALUE-2"}
类型检测
【type()】
type()方法用于检测javascript对象的类型
如果对象是undefined或null,则返回相应的“undefined”或“null”
jQuery.type( undefined ) === "undefined"jQuery.type() === "undefined"jQuery.type( window.notDefined ) === "undefined"jQuery.type( null ) === "null"
如果对象有一个内部的[[Class]]和一个浏览器的内置对象的 [[Class]] 相同,返回相应的 [[Class]] 名字
jQuery.type( true ) === "boolean"jQuery.type( 3 ) === "number"jQuery.type( "test" ) === "string"jQuery.type( function(){} ) === "function"jQuery.type( [] ) === "array"jQuery.type( new Date() ) === "date"jQuery.type( new Error() ) === "error" jQuery.type( /test/ ) === "regexp"
所以该方法类似于原生javascript中经过封装的Object.prototype.toString()方法
function type(obj){return Object.prototype.toString.call(obj).slice(8,-1).toLowerCase(); }
【isArray()】
在原生javascript中,数组检测是一个经典问题,当出现网页中包含多个框架的场景时,数组检测就不再容易
jQuery提供了isArray()方法用来检测数组
console.log($.isArray([]));//true
【isFunction()】
isFunction()方法用来检测传入的参数是否为函数
console.log($.isFunction(function(){}));//true
如果使用原生javascript,使用typeof即可实现
console.log(typeof function(){});//"function"
【isNumeric()】
isNumeric()方法用来检测传入的参数是否为数字
[注意]参数为纯数字或数字字符串都可以
$.isNumeric("-10"); // true$.isNumeric(-10); // true
如果使用原生javascript,使用typeof即可实现,但结果稍有不同
console.log(typeof 10);//"number"console.log(typeof '10');//"string"
【isEmptyObject()】
isEmptyObject()方法用来检测一个对象是否为空对象
jQuery.isEmptyObject({}) // truejQuery.isEmptyObject({ foo: "bar" }) // false
【isPlainObject()】
isPlainObject()方法用来检测一个对象是否是原生对象,即通过 "{}" 或者 "new Object" 创建的对象
console.log($.isPlainObject({}));//trueconsole.log($.isPlainObject(document.documentElement));//falseconsole.log($.isPlainObject(new Boolean(true)));//falseconsole.log($.isPlainObject(true));//false
数组相关
【inArray()】
inArray(value, array [, fromIndex ])方法类似于原生javascript的indexOf()方法,没有找到匹配元素时它返回-1。如果数组第一个元素匹配参数,那么$.inArray()返回0
参数fromIndex是数组索引值,表示从哪里在开始查找。默认值是0
var arr = [1,2,3,'1','2','3']; console.log(arr.indexOf('2'));//4console.log(arr.indexOf(3));//2console.log(arr.indexOf(0));//-1var arr = [1,2,3,'1','2','3']; console.log($.inArray('2',arr));//4console.log($.inArray(3,arr));//2console.log($.inArray(0,arr));//-1
【makeArray()】
makeArray()方法用于将一个类数组对象转换为真正的javascript数组
console.log($.isArray({ 0: 'a', 1: 'b', length: 2 }));//falseconsole.log($.isArray($.makeArray({ 0: 'a', 1: 'b', length: 2 })));//true
如果使用原生javascript,可以使用slice()方法将类数组对象变成真正的数组
var arr = Array.prototype.slice.call(arrayLike); Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })// ['a', 'b']Array.prototype.slice.call(document.querySelectorAll("div")); Array.prototype.slice.call(arguments);
【unique()】
unique()方法用于数组去重
var $arr = [document.body,document.body]; console.log($.unique($arr));//[body]var $arr = [1,2,1]; console.log($.unique($arr));//[2,1]
使用原生javascript实现如下
Array.prototype.norepeat = function(){var result = [];for(var i = 0; i < this.length; i++){if(result.indexOf(this[i]) == -1){ result.push(this[i]); } }return result; }
var arr = [1,2,1]; console.log(arr.norepeat());//[1,2]var arr = [document.body,document.body]; console.log(arr.norepeat());//[body]
【grep()】
查找满足过滤函数的数组元素。原始数组不受影响
jQuery.grep( array, function(elementOfArray, indexInArray) [, invert ] ) array: Array 用于查询元素的数组。function: Function() 该函数来处理每项元素的比对。第一个参数是正在被检查的数组的元素,第二个参数是该元素的索引值。该函数应返回一个布尔值。this将是全局的window对象。 invert: Boolean 如果“invert”为false,或没有提供,函数返回一个“callback”中返回true的所有元素组成的数组,。如果“invert”为true,函数返回一个“callback”中返回false的所有元素组成的数组。
$.grep()方法会删除数组必要的元素,以使所有剩余元素通过过滤函数的检查。该测试是一个函数传递一个数组元素和该数组内这个的索引值。只有当测试返回true,该数组元素将返回到结果数组中。
该过滤器的函数将被传递两个参数:当前正在被检查的数组中的元素,及该元素的索引值。该过滤器函数必须返回'true'以包含在结果数组项
var result = $.grep( [0,1,2], function(n,i){ return n > 0; }); console.log(result);//[1, 2]
var result = $.grep( [0,1,2], function(n,i){ return n > 0; },true); console.log(result);//[0]
【merge()】
合并两个数组内容到第一个数组
jQuery.merge( first, second )
console.log($.merge( [0,1,2], [2,3,4] ));//[0, 1, 2, 2, 3, 4]
其他
【proxy()】
proxy()方法接受一个函数,然后返回一个新函数,并且这个新函数使用指定的this
proxy()方法类似于bind(),但并不相同。区别在于,bind()方法是改变原函数的this指向,而proxy()方法是新建一个函数,并使用参数中的this指向,原函数的this指向并无变化
var a = 0;function foo(){ console.log(this.a); }var obj = { a:2}; foo();//0$.proxy(foo,obj)();//2foo();//0
proxy()方法支持多种参数传递方式
function foo(a,b){ console.log(a+b); } $.proxy(foo,document)(1,2);//3$.proxy(foo,document,1,2)();//3$.proxy(foo,document,1)(2);//3
在绑定事件时一定要合理使用proxy()方法的参数传递方式,否则事件还没有发生,可能函数已经被调用了
$(document).click($.proxy(foo,window,1,2))
【trim()】
jQuery.trim()函数用于去除字符串两端的空白字符
这个函数很简单,没有多余的参数用法
console.log($.trim(" hello, how are you? "));//'hello, how are you?'
【noop()】
一个空函数
jQuery.noop() 此方法不接受任何参数
当你仅仅想要传递一个空函数的时候,就用他吧
这对一些插件作者很有用,当插件提供了一个可选的回调函数接口,那么如果调用的时候没有传递这个回调函数,就用jQuery.noop来代替执行
【now()】
返回一个数字,表示当前时间
jQuery.now() 这个方法不接受任何参数
$.now()方法是表达式(new Date).getTime()返回数值的一个简写
【parseHTML()】
将字符串解析到一个DOM节点的数组中
jQuery.parseHTML( data [, context ] [, keepScripts ] ) data : String 用来解析的HTML字符串 context (默认: document): Element DOM元素的上下文,在这个上下文中将创建的HTML片段。 keepScripts (默认: false): Boolean 一个布尔值,表明是否在传递的HTML字符串中包含脚本。
jQuery.parseHTML
使用原生的DOM元素的创建函数将字符串转换为一组DOM元素,然后,可以插入到文档中。
默认情况下,如果没有指定或给定null
or undefined
,context
是当前的document
。如果HTML被用在另一个document中,比如一个iframe,该frame的文件可以使用
var result = $.parseHTML( "hello, my name is jQuery"); $('div').append(result);
【parseJSON()】
接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript 对象
jQuery.parseJSON( json )
var obj = jQuery.parseJSON('{"name":"John"}'); console.log(obj.name === "John");//true
以上是jQuery常用工具方法的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

微信是主流的聊天工具之一,我们可以通过微信认识新的朋友,联系老的朋友,维系朋友之间的情谊。正如天下没有不散的宴席,人与人之间的相处难免会发生意见不合的时候。当一个人极其影响你的情绪,或者在相处的时候发现三观不合,没办法再继续沟通,那么我们可能需要删除微信好友的方法。怎么删除微信好友?删除微信好友的方法第一步:在微信主界面轻触【通讯录】;第二步:点击对应要删除的好友,进入【详细资料】;第三步:点击右上角【...】;第四步:点击下方【删除】即可;第五步:了解后页面提示后,点击【删除联系人】即可;温馨

番茄小说是一款非常热门的小说阅读软件,我们在番茄小说中经常会有新的小说和漫画可以去阅读,每一本小说和漫画都很有意思,很多小伙伴也想着要去写小说来赚取赚取零花钱,在把自己想要写的小说内容编辑成文字,那么我们要怎么样在这里面去写小说呢?小伙伴们都不知道,那就让我们一起到本站本站中花点时间来看写小说的方法介绍吧。分享番茄小说写小说方法教程 1、首先在手机上打开番茄免费小说app,点击个人中心——作家中心 2、跳转到番茄作家助手页面——点击创建新书在小说的结

七彩虹主板在中国国内市场享有较高的知名度和市场占有率,但是有些七彩虹主板的用户还不清楚怎么进入bios进行设置呢?针对这一情况,小编专门为大家带来了两种进入七彩虹主板bios的方法,快来试试吧! 方法一:使用u盘启动快捷键直接进入u盘装系统 七彩虹主板一键启动u盘的快捷键是ESC或F11,首先使用黑鲨装机大师制作一个黑鲨U盘启动盘,然后开启电脑,当看到开机画面的时候,连续按下键盘上的ESC或F11键以后将会进入到一个启动项顺序选择的窗口,将光标移动到显示“USB”的地方,然

而后悔莫及、人们常常会因为一些原因不小心将某些联系人删除、微信作为一款广泛使用的社交软件。帮助用户解决这一问题,本文将介绍如何通过简单的方法找回被删除的联系人。1.了解微信联系人删除机制这为我们找回被删除的联系人提供了可能性、微信中的联系人删除机制是将其从通讯录中移除,但并未完全删除。2.使用微信内置“通讯录恢复”功能微信提供了“通讯录恢复”节省时间和精力,用户可以通过该功能快速找回之前被删除的联系人,功能。3.进入微信设置页面点击右下角,打开微信应用“我”再点击右上角设置图标、进入设置页面,,

Win11管理员权限获取方法汇总在Windows11操作系统中,管理员权限是非常重要的权限之一,可以让用户对系统进行各种操作。有时候,我们可能需要获取管理员权限来完成一些操作,比如安装软件、修改系统设置等。下面就为大家总结了一些获取Win11管理员权限的方法,希望能帮助到大家。1.使用快捷键在Windows11系统中,可以通过快捷键的方式快速打开命令提

字体大小的设置成为了一项重要的个性化需求,随着手机成为人们日常生活的重要工具。以满足不同用户的需求、本文将介绍如何通过简单的操作,提升手机使用体验,调整手机字体大小。为什么需要调整手机字体大小-调整字体大小可以使文字更清晰易读-适合不同年龄段用户的阅读需求-方便视力不佳的用户使用手机系统自带字体大小设置功能-如何进入系统设置界面-在设置界面中找到并进入"显示"选项-找到"字体大小"选项并进行调整第三方应用调整字体大小-下载并安装支持字体大小调整的应用程序-打开应用程序并进入相关设置界面-根据个人

手机游戏成为了人们生活中不可或缺的一部分,随着科技的发展。它以其可爱的龙蛋形象和有趣的孵化过程吸引了众多玩家的关注,而其中一款备受瞩目的游戏就是手机版龙蛋。帮助玩家们在游戏中更好地培养和成长自己的小龙,本文将向大家介绍手机版龙蛋的孵化方法。1.选择合适的龙蛋种类玩家需要仔细选择自己喜欢并且适合自己的龙蛋种类,根据游戏中提供的不同种类的龙蛋属性和能力。2.提升孵化机的等级玩家需要通过完成任务和收集道具来提升孵化机的等级,孵化机的等级决定了孵化速度和孵化成功率。3.收集孵化所需的资源玩家需要在游戏中

Oracle版本查询方法详解Oracle是目前世界上最流行的关系型数据库管理系统之一,它提供了丰富的功能和强大的性能,广泛应用于企业中。在进行数据库管理和开发过程中,了解Oracle数据库的版本是非常重要的。本文将详细介绍如何查询Oracle数据库的版本信息,并给出具体的代码示例。查询数据库版本的SQL语句在Oracle数据库中,可以通过执行简单的SQL语句
