下载
jQuery 1.2
jQuery 压缩版 (使用 gzip 压缩后 14kb)
jQuery 打包版 (26kb)
jQuery 常规版 (77kb)
新功能
部分 .load()
部分 .load() 允许您将 HTML 文档的片段加载到您的页面中,并通过 jQuery 选择器进行筛选。这与普通的 Ajax .load() 类似,只是您在检索的 URL 后面立即指定一个选择器。
跨域 $.getScript
您现在可以使用 getScript 动态加载并执行远程脚本。这可以用于加载 jQuery 插件或其他代码模块。
跨域 $.getJSON (使用 JSONP)
JSONP 是一种允许您跨多个域传输 JSON 数据的技术。
jQuery 现在原生支持 JSONP - 如果您尝试从远程 URL 加载 JSON(通过 $.getJSON 或 $.ajax),那么将提供一个额外的回调函数供服务器解释。此外,如果服务器需要一个特殊的字段来指定您自己的回调函数名称,您可以在查询字符串中包含一个 “=?”,以提供该字段。
序列化大修
.serialize() 方法进行了重大改动,将 jQuery Forms 插件 提供的功能移植回 jQuery 核心。这意味着表单数据的序列化现在应该与浏览器通常发送到服务器的数据非常接近。
此外,还引入了一个新的 .serializeArray() 方法,它会序列化所有表单和表单元素(与 .serialize() 方法相同),但会返回一个 JSON 数据结构供您使用。这在处理您希望处理的大型表单时特别有用。
禁用缓存
在 $.ajax 调用中,您现在可以通过提供一个额外的 cache: false
标志来防止浏览器缓存请求。这将确保您可能执行的任何 GET 请求都将绝对检索页面的最新版本。
cache: false
始终向服务器发送新请求。
« 返回完整的 [[Release:jQuery 1.2|jQuery 1.2 版本说明]]。
.val() 大修
简单的 .val() 方法得到了很多关注,使其更加有用。您现在可以设置一组单选按钮和复选框的选中状态,以及设置选择选项的选中状态。您可以通过传入您要选择/选中项的值或名称的数组来实现这一点。(在 Firefox2 中失败,单选按钮在 IE7 中失败)现在可以在选择元素上调用 .val(),以获取它们的值。
.offset()
从 [https://jqueryjs.cn/plugins/project/dimensions Dimensions 插件] 中移植过来,[[CSS/offset|.offset()]] 方法允许您找到元素相对于文档左上角的偏移量(以 “top” 和 “left” 表示)。
.height() / .width() 用于文档和窗口
.height() 和 .width() 现在可以在文档和窗口对象上使用;允许获取文档主体和窗口视窗的高度和宽度。
.stop()
停止所有指定元素上当前运行的动画。如果任何动画已排队等待运行,那么它们将立即开始。
%/em 动画
动画现在可以使用 em 值或百分比值以及像素值进行。它们甚至可以在同一个 animate() 调用中混合使用。
颜色动画
一个新的 [https://jqueryjs.cn/plugins/project/color 官方 jQuery 插件],通过使用新的 jQuery.fx.step 支持动画元素的 CSS 颜色。
支持的 CSS 属性:‘backgroundColor’;‘borderBottomColor’;‘borderLeftColor’;‘borderRightColor’;‘borderTopColor’;‘color’;‘outlineColor’。
颜色可以指定为预设的一系列命名颜色;以 rgb 格式(例如 ‘rgb(221,221,221)’);十六进制(例如 ‘#dddddd’);或简写十六进制(例如 ‘#ddd’)。
相对动画
相对动画的行为与普通动画相同,但它们的单位被指定为相对于元素当前位置的相对位置,而不是绝对位置。
您可以通过将数字和(可选)单位写成字符串,并在前面加上 “+=”(用于相对于当前位置添加的相对动画)或 “-=”(用于从当前位置减去的相对动画)来指定相对动画。
同步动画
与以往一样,jQuery 中的动画会自动排队,这允许 animate() 调用进行链式操作。
现在,如果在 animate() 的选项中包含 queue: false
标志,那么该动画将不会进入队列,而是会立即开始运行。
.queue() / .dequeue()
两个现有的内部 jQuery 排队方法已进行调整,并变得更加有用,适用于一般动画用途。
.queue() 可用于访问和操作特定元素的动画队列。
添加了以下排队方法
* .queue()
返回对第一个元素队列的引用(这是一个函数数组)。
* .queue(Function)
将一个新的函数添加到所有匹配元素队列的末尾,该函数将被执行。
* .queue(Array
将所有匹配元素的队列替换为这个新的队列(函数数组)。
并添加了以下出队方法:.dequeue() 从队列的开头移除一个排队的函数并执行它。
可扩展动画
您现在可以使用一个函数扩展 jQuery 动画,该函数在动画的每个步骤(更改正在动画的元素的样式)中被触发。它可以扩展到特定的 CSS 属性,甚至可以创建一个自定义动画类型。
例如,您可以将一个额外的 step 函数传递给 .animate(),以执行动画同步等操作。
命名空间事件
这是一个对插件作者特别有用的功能。您现在可以为绑定的事件处理程序提供一个私有名称,允许您稍后再次移除它们(而无需维护所有您正在监督的处理程序的私有缓存)。
.triggerHandler()
一个新的方法,可以与原始的 .trigger() 一起使用。此方法会触发元素上所有绑定的事件处理程序(针对特定事件类型),而不会执行浏览器的默认操作。
.wrapInner() / .wrapAll()
.wrapInner() 用于包装每个匹配元素的内部子内容(包括文本节点);.wrapAll() 将匹配集合中的所有元素包装在一个包装元素中(这与 .wrap() 不同,在 .wrap() 中,匹配集合中的每个元素都将被一个元素包装)。
.replaceWith() / .replaceAll()
replaceWith 将所有匹配的元素替换为指定的 HTML 或 DOM 元素。.replaceAll 将由指定选择器匹配的元素替换为匹配的元素。
带有事件的克隆
.clone() 方法现在可以接受一个可选参数,如果为 true,它还会克隆所有克隆元素上的所有事件处理程序。
:has(selector)
这将匹配所有包含至少一个匹配指定选择器的元素的元素。这是 XPath 选择器
:header
这将匹配所有标题(h1、h2、h3、h4、h5 和 h6 标签)。这在为页面构建目录时非常有用(尤其是在标题的顺序很重要的情况下)。
:animated
匹配当前正在至少一个动画中被动画化的元素。
XPath 选择器插件
由于 XPath 选择器已从 jQuery 1.2 中删除,因此引入了一个新的 [https://jqueryjs.cn/plugins/project/xpath XPath 选择器插件]。您可以使用此插件获得自 jQuery 创建以来就存在的 CSS/XPath 混合选择器。
.map()
将一组元素转换为另一组值(这些值可能是也可能不是元素)。您可以使用它来构建值列表、属性、CSS 值 - 甚至执行特殊、自定义的选择器转换。这作为使用 $.map() 的方便方法提供。
.prevAll() / .nextAll()
允许您找到当前元素之前或之后的所有同级元素。
.slice()
此方法的行为与数组的原生 .slice() 方法相同,允许您将 jQuery 集合切成可重复使用的部分。
.hasClass()
新的 .hasClass() 方法是一个简单的方便方法,它位于 [[Traversing/is|.is()]] 之上,处理其最常见的用例(检查类名)。
.andSelf()
将 jQuery 堆栈上的两个先前集合合并为一个匹配集合。
.contents()
查找匹配元素内部的所有子节点(包括文本节点)。如果您对 iframe 元素执行此操作,它会返回其内部文档。
如何升级
如果您尚未这样做,请升级到 jQuery 1.1.4。这将有助于消除您使用的 jQuery 最后版本和当前版本之间的大多数意外情况。浏览弃用和移除的功能列表,确保您在代码中没有使用任何这些功能。如果您使用的任何插件仍然需要一些旧的功能,您可以随时包含 jQuery 1.1 兼容性插件或 XPath 兼容性插件,具体取决于情况。
jQuery 1.1 兼容性插件
在 jQuery 1.2 版本中,删除了一些功能。包含此插件将使您在 jQuery 1.2 的副本中拥有所有已删除的功能。
插件的典型用法如下所示
XPath 兼容性插件
由于 XPath 选择器已从 jQuery 1.2 中删除,因此引入了一个新的 XPath 选择器插件。您可以使用此插件获得自 jQuery 创建以来就存在的 CSS/XPath 混合选择器。
颜色动画插件
一个新的官方 jQuery 插件,通过使用新的 jQuery 动画 API 支持动画元素的 CSS 颜色。支持的 CSS 属性包括:‘backgroundColor’、‘borderBottomColor’、‘borderLeftColor’、‘borderRightColor’、‘borderTopColor’、‘color’、‘outlineColor’。
已删除的功能
我们移除了 jQuery 1.2 中一些使用较少、容易造成混淆或效率低下的方法。在可能的情况下,我们提供了执行这些操作的替代方法。
在 jQuery 1.2 中,与 jQuery 1.1 版本一样,提供了一个向后兼容插件。因此,如果您希望继续使用这些特定方法,则可以使用该插件继续进行。
此外,为了处理 XPath 更改,另一个单独的插件已可供使用,它将在 jQuery 中处理 XPath 选择器功能。
DOM 操作
使用参数调用 clone 方法即将被弃用(clone 方法本身将保留)。不要再调用.clone(false)您现在应该使用.clone().empty()代替。
DOM 遍历
.eq() 方法即将被弃用,将使用新的 .slice() 方法(其工作方式与数组的 slice 方法相同)。您可以像这样复制 .eq()
$("div").slice(0,1);
.lt() 方法即将被弃用,将使用新的 .slice() 方法(其工作方式与数组的 slice 方法相同)。
.gt() 方法即将被弃用,将使用新的 .slice() 方法(其工作方式与数组的 slice 方法相同)。
.contains() 方法即将被弃用,将使用普通的 .filter() 语句。您可以像这样复制 .contains()
$("div").filter(":contains(Your Text)");
Ajax
$("#elem").loadIfModified("some.php"): 此便利方法即将被移除,将使用 $.ajax() 的长格式。
$.ajax({ url: "some.php", ifModified: true, success: function(html){ $("#elem").html(html); } });
$.getIfModified("some.php"): 此便利方法即将被移除,将使用 $.ajax() 的长格式。
$.ajax({ url: "some.php", ifModified: true });
$.ajaxTimeout(3000): 此便利方法即将被移除,将使用更显式的 $.ajaxSetup() 的长格式。
$.ajaxSetup({timeout: 3000});
$(...).evalScripts(): 此方法在 jQuery 中不再需要 - 注入到文档中的 HTML 字符串中的所有脚本都会自动评估。不需要替代方法。