背景:客户需要,认为3.0之前的版本存在XSS(跨站脚本攻击)风险,jquery版本需要从当前的1.8.2更新到3.3.1。

查询了官方文档,https://www.jquery123.com/category/deprecated/deprecated-3.0/

3.0以后的版本主要弃用的API有:.bind()、.unbind()、.delegate()、.undelegate()、jquery.fx.interval

1.9和1.10版本弃用的API有jquery.support()、.context()

详细问题:

1、attr和prop

attr:获取匹配的元素集合中的第一个元素的属性的值  或 设置每一个匹配元素的一个或多个属性。
prop:获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。

attr是1.0之后使用的,prop是1.6以后使用的,用法不同,需注意。

在jQuery 1.6中,当属性没有被设置时候,.attr()方法将返回undefined。 若要检索和更改DOM属性,比如元素的checked, selected, 或 disabled状态,使用.prop()方法。

版本升级最大改动就在这里,之前的代码大量使用attr,没办法。。。

2、报错:Uncaught TypeError: url.indexOf is not a function
这个错误是由于调用了load函数导致的错误
把代码里调用load函数的方式
//old
$(window).load(function() { ... });
//new
$(window).on('load', function() { ... });

注意:.load(), .unload(), and .error()从jQuery 1.8开始就被废弃了,换成使用.on()函数来注册。其实这里应该之前1.8的时候就报错,可能都没有注意到,这次正好一次性改完。

3.$.browser用法

jQuery 1.9不再支持$.browser 和 $.browser.version,取而代之的是 $.support。在更新的 2.0 版本中,将不再支持 IE 6/7/8。
当前客户要求的版本3.0+,肯定是不支持IE6/7/8了,先前我们用的是1.8版本,因此现在所有的$.browser用法都报错,页面混乱。

如果要全面支持 IE,并混合使用 jQuery 1.9 和 2.0, 官方的解决方案是加入以下脚本:
<!--[if lt IE 9]>
  <script src='jquery-1.9.0.js'></script>
<![endif]-->
<!--[if gte IE 9]>
  <script src='jquery-2.0.0.js'></script>
<![endif]-->

从长久来看,这样有利于在复杂情况下根据浏览器特性进行分别处理, 而不是简单的检测浏览器类型和版本。 但目前很多旧程序的移植恐怕无法直接过渡为根据浏览器支持特性, 所以在网上找了一些能够直接替换的解决办法。
jQuery1.9之前判断浏览器类型:
$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase()); //firefox
$.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase()); //webkit内核
$.browser.opera = /opera/.test(navigator.userAgent.toLowerCase()); //opera
$.browser.msie = /msie/.test(navigator.userAgent.toLowerCase()); //IE

等号后面的表达式返回的就是 true/false,可以直接用来替换原来的 $.browser.msie 等。如需要检查是否为 IE6时,可以这么写:
// Old
if ($.browser.msie && 7 > $.browser.version)
// New
if ('undefined' == typeof(document.body.style.maxHeight))
检查是否为 IE 6-8:
if (!$.support.leadingWhitespace) {}

4.$("#id").val(index);  之前1.8.2,当index不存在时会默认选取第一个,升级3.3.1之后,如果不存在不会有默认选项,显示也是空白。

5.$.post(...). error(function()错误回调方法报错:Uncaught TypeError: $.post(...).error is not a function

原因:$.post()使用连缀.error()方法提示错误,连缀方法被.fail()取代

转载于:https://www.cnblogs.com/xuqiushuo/p/10638600.html

jQuery版本升级问题汇总相关推荐

  1. jQuery数组处理汇总

    有段时间没写什么了, 打算把jquery中的比较常用的数组处理方法汇总一下 $.each(array, [callback])遍历,很常用 ? 1 2 3 4 5 6 7 8 var arr = [' ...

  2. jQuery 表格插件汇总

    本文搜集了大量 jQuery 表格插件,帮助 Web 设计者更好地驾御 HTML 表格,你可以对表格进行横向和竖向排序,设置固定表头,对表格进行搜索,对大表格进行分页,对表格进行滚动,拖放操作等等.这 ...

  3. 备份数据 宝塔linux_宝塔面板旧版本升级教程汇总—升级宝塔面板

    往期教程: 宝塔面板教程(1)基于云服务器搭建宝塔面板教程最全详解 宝塔面板教程(2)宝塔面板添加WordPress站点详细图文教程 宝塔面板教程(3)基于宝塔面板成功配置网站SSL安全证书 宝塔面板 ...

  4. JQuery常用知识点汇总

    2019独角兽企业重金招聘Python工程师标准>>> 0.JQuery的基本属性标识:     $(".xxx"):标签的class属性:     $(&quo ...

  5. jquery 鼠标事件汇总

    鼠标事件是指用户在移动鼠标光标或者点击任意鼠标键时触发的事件,jQuery中封装了基本上所有的鼠标事件包括点击,双击,移动等鼠标事件,下面我们就来看下这些事件的语法和用法 鼠标事件是在用户移动鼠标光标 ...

  6. jQuery笔试题汇总整理--2018

    很多人认为属于JQ的时代已经结束了!但是请不要忘记JQ自身还有一项非常牛的优势--兼容性!这是其它框架所不具备的!所以至少目前JQ还是有自己的用武之地的.在这里我将JQ的一些面试题进行了整理,希望对大 ...

  7. 2020年jQuery笔试题汇总整理

    很多人认为属于JQ的时代已经结束了!但是请不要忘记JQ自身还有一项非常牛的优势--兼容性!这是其它框架所不具备的!所以至少目前JQ还是有自己的用武之地的.在这里我将JQ的一些面试题进行了整理,希望对大 ...

  8. jQuery面试题汇总

    [jQuery] [jQuery] 针对jQuery的优化方法有哪些? [jQuery]JQuery一个对象可以同时绑定多个事件,这是如何实现的? [jQuery] jQuery中如何将数组转化为js ...

  9. jQuery常见方法汇总

    jQuery常见方法 一.遍历筛选元素的方法 find() children() siblings() first() eq() parent() filter() end() has() prev( ...

最新文章

  1. Pat乙级 1049 数列的片段和
  2. image.open()得到的图片是什么类型_500G图片1秒压缩成200M,这个方法也太逆天了吧!完全免费...
  3. pku 1191 棋盘分割 DP / 记忆化搜索
  4. avalon2 非必填项的表单验证规则
  5. 前端开发中一些常用技巧总结
  6. 【Unity】UGUI无法修改UI元素的Pivot锚点位置
  7. Effective Python: bytes, str, unicode
  8. 公司为什么需要自己的SAP内部顾问
  9. 交换机入门书籍推荐_网络工程学习方法/路线/专业书籍推荐
  10. 5101是多大的电阻_电阻尺寸对照表
  11. hexo部署时出现excepted token解决方法
  12. 如何判断一个数的二进制中1的个数(num = (num - 1))
  13. LVGL_V8.2 时钟动画 (持续更新中)
  14. create connection SQLException, url: jdbc:mysql:///test, errorCode 1045, state 28000
  15. Aspose.Slides for .NET V23 Crack
  16. iOS开发的Sketch之旅
  17. linux查看vm_type,【心得,备忘录】查看vmlinux的符号信息
  18. [碎碎念]来谈谈写作这件事
  19. 域用户如何批量修改服务器时间,如何批量修改word中的域
  20. tems测试软件不显示小区标,TEMS回放LOG文件GSM Serving+Neighbors[MS1]窗口无法显示小区号...

热门文章

  1. Linux学习总结(14)——Linux权限控制
  2. 语言是用的,把日常的交流转换成其它语言就可以了(转)
  3. no result type defined for type 'dispatch'mapped
  4. Oracle中去重复记录 不用distinct
  5. Hadoop上路_11-HDFS流程演示
  6. 文本分类中的特征词选择算法系列科普(前言AND 一)
  7. Flink进行Kafka事实表与Mysql维度表Join(纯DDL/DML方式)
  8. sklearn中的验证
  9. 关闭sublime更新提示完整方案(转)并且统一TAB为四个空格、禁止升级检查
  10. chrome调试js的小技巧