jQuery Core 3.0升级指南
链接概述
随着3.0版本的主要版本,jQuery Core团队已经利用这个机会对API进行了修改,并修复了可能会破坏某些代码的更改的错误。这包括删除先前已弃用的公共API,更改或删除未记录的API,以及对具体输入的现有API的已记录或未记录行为的更改。
链接浏览器支持
截至jQuery 3.0,支持以下浏览器:
- Internet Explorer:9+
- Chrome,Edge,Firefox,Safari:当前和当前 - 1
- 歌剧:现在
- Safari Mobile iOS:7+
- Android 4.0以上版本
jQuery团队策略只能在主要版本更新中更改浏览器支持,因此此列表将适用,直到jQuery 4至少达到。
属性
链接断开更改:.removeAttr()
不再将属性设置为false
在此之前的jQuery 3.0,使用.removeAttr()
上的布尔属性如checked
,selected
,或readonly
也将设置相应的命名属性来false
。对于古代版本的Internet Explorer而言,此行为是必需的,但对于现代浏览器来说不是正确的,因为该属性表示初始值,该属性表示当前(动态)值。
.removeAttr( "checked" )
在DOM元素上使用几乎总是错误的。唯一可能有用的是如果DOM稍后将被序列化回HTML字符串。在所有其他情况下,.prop( "checked", false )
应该使用。
断开更改:没有选择的select-multiple返回一个空数组
jQuery的3.0之前,调用.val()
一个在<select multiple>
选定返回,没有元素的元素null
。这是不方便的,因为如果至少选择一个值,返回值将是一个数组。此外,如果所有选项都被禁用,jQuery已经返回一个空数组。为了提高一致性,现在没有选择的情况会返回一个空数组。
断开更改:已弃用已.size()
删除
.size()
从jQuery 1.8开始被淘汰,并在jQuery 3.0中删除了该.length
属性。
已弃用:jQuery.parseJSON()
由于jQuery 3.0支持的所有浏览器都支持本机JSON.parse()
方法,所以我们不赞成使用jQuery.parseJSON()
。
正式支持Promise
官方原文参考:
https://jquery.com/upgrade-guide/3.0/