jquery1.9的变化(官方升级指引没有提到的变化)

今天从jquery1.7.1 升级至jquery 1.9.1,踩到两个坑,在此记录一下,方便其他朋友解决类似问题。

1、data() 在不存在节点时的差异:
取一个不存在节点的data值时,在1.7版本会返回undefined,而在1.9.1会返回unll。
假设页面上不存在id为none的节点,但有以下JS代码:
$('#none').data('anyKey');  在1.9.1会返回null。
所以不要只用typeof $('none').data('anyKey') == 'undefined' 来判断该值。

2、$.parseJSON方法的差异:
假设后端有返回一空的JSON数据,并且他意外地只是一空字符串,当然这种字符串的可能性是非常小的,因为通常后端都会有方法处理成正常的JSON格式,如PHP的json_encode()函数。
但是总有意外的时候,你期望要解析的JSON字符串,仅仅是一空字符串。那么,在jquery1.9.1的$.parseJSON()将会出错。
$.parseJSON('');  //SyntaxError: JSON.parse: unexpected end of data
在jquery1.9.1之前不会报错,看来要把容错处理要留给用户来做了。
解决方法:
$.parseJSON('{}');

附jquery1.91的官方升级指引地址:http://jquery.com/upgrade-guide/1.9

转载于:https://www.cnblogs.com/zzbo/archive/2013/04/15/3022038.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值