主页/jQuery教程/参考手册/jQuery核心参考手册

jQuery核心参考手册

4,801字
20–30 分钟

jQuery核心

目录

jQuery核心是jQuery库的基础部分,提供了核心函数、实用工具、异步管理机制等。本章节详细说明jQuery核心API的用法、参数及版本变更。

核心方法

jQuery() 核心函数

用于选择DOM元素、创建元素或包装DOM对象以使用jQuery方法。

签名描述版本
jQuery(selector [, context])基于CSS选择器查找元素1.0+
jQuery(element)将单个DOM元素包装为jQuery对象1.0+
jQuery(elementArray)将DOM元素数组包装为jQuery对象1.0+
jQuery(object)将普通对象包装为jQuery对象1.0+
jQuery(jQuery object)克隆现有jQuery对象1.0+
jQuery(html [, ownerDocument])根据HTML字符串创建DOM元素1.0+
jQuery(html, attributes)创建元素并同时设置属性(1.4+支持属性对象)1.4+
jQuery(callback)等同于$(document).ready(callback)1.0+

版本变更

  • 1.4:jQuery(html, attributes)支持传入包含属性、事件、CSS的映射对象。
  • 1.8:不再支持jQuery(html, props)中的某些属性(如enctype)的跨浏览器设置。
  • 3.0:jQuery(html)创建的脚本元素在插入文档前不再执行。

jQuery.noConflict()

将变量$的控制权交还给其他库。

签名描述版本
jQuery.noConflict([removeAll])还原$,返回jQuery;若removeAlltrue则还原jQuery本身1.0+

jQuery.ready()

自定义的Promise-like对象,在DOM准备就绪时解析。

签名描述版本
jQuery.ready返回一个thenable对象,可用于等待DOM就绪3.0+
jQuery.readyException(error)处理jQuery()回调中同步抛出的错误3.1+

jQuery.holdReady()

暂停或恢复ready事件的执行。

签名描述版本状态
jQuery.holdReady(hold)holdtrue则暂停ready触发1.6+3.2+不鼓励使用,推荐原生async/defer

核心属性

属性描述版本状态
jQuery.fnjQuery.prototype的别名,用于插件扩展1.0+活跃
jQuery.fn.jquery返回jQuery版本号的字符串($().jquery1.0+活跃
jQuery.selector存储构造jQuery对象时使用的原始选择器1.3+1.7+废弃,3.0+移除
jQuery.context存储原始上下文对象1.3+1.7+废弃,3.0+移除
jQuery.expando用于数据缓存的唯一标识符1.0+内部使用
jQuery.cssHooks钩子,用于自定义CSS属性获取/设置1.4.3+活跃
jQuery.cssNumber指示哪些CSS属性无需添加px单位1.4.3+4.0+移除
jQuery.cssProps属性名规范化映射1.4.3+4.0+移除

延迟对象与回调管理

jQuery.Deferred()

工厂函数,返回链式延迟对象,用于管理异步回调。

方法描述版本
deferred.done()添加成功回调1.5+
deferred.fail()添加失败回调1.5+
deferred.progress()添加进度回调1.7+
deferred.always()添加无论成功/失败都执行的回调1.6+
deferred.then()添加成功/失败/进度回调,并可链式转换1.5+
deferred.catch()添加失败回调(Promise兼容)3.0+
deferred.resolve()成功解决延迟对象1.5+
deferred.reject()拒绝延迟对象1.5+
deferred.notify()触发进度回调1.7+
deferred.promise()返回只读Promise视图1.5+
deferred.state()返回当前状态(pending/resolved/rejected1.7+

版本变更

  • 1.8:deferred.then()行为改变,现在返回新的Deferred而非过滤原对象。
  • 3.0:deferred.catch()作为.then(null, ...)的别名加入。
  • 4.0:Deferred和Callbacks模块在slim构建中被移除。

jQuery.Callbacks()

多用途回调列表对象。

方法描述版本
callbacks.add()添加回调1.7+
callbacks.remove()移除回调1.7+
callbacks.fire()执行所有回调1.7+
callbacks.disable()禁用回调列表1.7+
callbacks.lock()锁定当前状态1.7+
callbacks.fired()检查是否已执行过1.7+
callbacks.locked()检查是否被锁定1.7+

标志参数:oncememoryuniquestopOnFalse

jQuery.when()

组合多个Deferred或Thenable对象。

签名描述版本
jQuery.when(deferreds...)返回主Deferred,在所有子对象解决后解决1.5+

版本变更

  • 1.8:支持传入任意数量的Deferred或普通值。
  • 3.0:如果传入单个Deferred,返回的Promise保留了该Deferred的方法(如.then)。

实用工具函数

类型检测(4.0+移除,推荐原生方法)

jQuery方法原生替代支持版本移除版本
jQuery.isArray()Array.isArray()1.3+4.0
jQuery.isFunction()typeof value === 'function'1.2+4.0
jQuery.isWindow()value === window1.2+4.0
jQuery.isNumeric()!isNaN(parseFloat(value)) && isFinite(value)1.7+4.0
jQuery.isPlainObject()无直接原生方法1.4+保留
jQuery.isEmptyObject()Object.keys(value).length === 01.4+保留
jQuery.isXMLDoc()检查ownerDocument属性1.1.4+保留
jQuery.type()typeof(但无法区分null/数组等)1.4.3+4.0

数组与对象操作

方法描述版本变更
jQuery.each()遍历数组或对象1.0+4.0仍保留
jQuery.map()遍历数组或对象,生成新数组1.0+4.0仍保留
jQuery.grep()过滤数组1.0+保留
jQuery.inArray()在数组中查找值1.2+保留
jQuery.makeArray()将类数组对象转为真数组1.2+保留
jQuery.merge()合并两个数组1.0+保留
jQuery.unique()去重DOM元素数组(3.0前仅限DOM)1.1.3+3.0别名uniqueSort
jQuery.uniqueSort()排序并去重DOM元素数组3.0+保留

字符串与数据操作

方法描述版本状态
jQuery.trim()移除字符串首尾空白1.0+4.0移除,用String.prototype.trim
jQuery.param()序列化对象为查询字符串1.2+保留
jQuery.parseHTML()解析HTML字符串为DOM节点数组1.8+保留
jQuery.parseXML()解析XML字符串为XML文档1.5+保留
jQuery.parseJSON()解析JSON字符串(原生JSON.parse包装)1.4.1+4.0移除
jQuery.escapeSelector()转义CSS选择器中的特殊字符3.0+保留
jQuery.globalEval()在全局上下文中执行脚本1.0.4+保留
jQuery.htmlPrefilter()修改传递给DOM操作方法的HTML字符串1.12/2.2+3.5+改为恒等函数
jQuery.error()抛出异常1.4.1+保留

数据缓存

方法描述版本
jQuery.data()为元素存储/获取任意数据1.2.3+
jQuery.removeData()移除数据1.2.3+
jQuery.hasData()检查元素是否有数据关联1.5+

版本变更

  • 1.4:数据缓存完全重写,使用内部Data对象。
  • 3.0:jQuery.data()不再暴露给外部,推荐使用.data()实例方法。

队列管理

方法描述版本
jQuery.queue()显示或操作匹配元素上的函数队列1.2+
jQuery.dequeue()执行队列中的下一个函数1.2+

说明:主要用于动画效果,但可用于任意自定义队列。

函数操作

方法描述版本状态
jQuery.proxy()固定函数的上下文1.4+保留
jQuery.noop()空函数1.4+保留

对象扩展

方法描述版本
jQuery.extend()合并两个或多个对象(深拷贝可选)1.0+
jQuery.fn.extend()将对象属性扩展到jQuery原型上,用于插件开发1.0+

版本变更重点记录

版本核心变更
1.0初始版本,包含基础核心方法
1.2引入jQuery.data()、队列方法
1.3添加jQuery.isArray()jQuery.inArray()
1.4大量新工具函数(isEmptyObjectisPlainObject等),jQuery.proxy()加入
1.5引入Deferred、Ajax重构
1.6jQuery.holdReady()加入
1.7Callbacks模块、Deferred进度通知
1.8jQuery.parseHTML(),Deferred行为调整
1.9移除jQuery.browserjQuery.sub()
2.0放弃IE 6-8支持,API同1.9
3.0加入jQuery.uniqueSort()jQuery.escapeSelector()jQuery.unique()保留为别名;.catch();移除已废弃属性.context.selector
3.5jQuery.htmlPrefilter变为恒等函数,移除针对旧浏览器的HTML修正
4.0移除大量工具函数(isArrayparseJSONtrimtype等),要求原生实现;jQuery.cssNumberjQuery.cssProps移除;Deferred与Callbacks从slim构建移除;不再支持IE<11;pushsortsplice从jQuery原型移除

核心对象与属性表

对象/属性类型描述版本
jQuery函数核心工厂函数1.0+
$函数引用jQuery的别名1.0+
jQuery.fn对象原型对象,用于实例方法扩展1.0+
jQuery.Deferred函数延迟对象工厂1.5+
jQuery.Callbacks函数回调列表工厂1.7+
jQuery.readyPromise-like文档就绪Promise3.0+
jQuery.support对象浏览器特性检测集合1.3+ (1.9+标记为私有)
jQuery.browser对象用户代理检测(1.3引入,1.9移除)1.3-1.8

总结:jQuery核心提供了从基础选择、工具函数到异步流程控制的完整API。随着浏览器标准演进,部分历史API已在4.0版本中被原生方法替代,开发者应根据项目需求选择合适的版本并关注迁移指南。