升级jq 后出现的bug修复
我们目前的网站比较老,大概有10年以上的历史了,里面引出了各种版本的jq,有V1.3.2,V1.7.2,V1.8.2,V1.11.1。
由于之前网上遭遇过黑客攻击且勒索,后来解决问题之后,公司出了钱请了专业的人士排查我们站点上面代码存在的一些漏洞。
其中
jq 要统一引用 V1.12.2版本,由此引出了一大堆问题,下面针对问题修复的办法,可能不是最好的,但却是我最快想到的,如果大家有更好的办法,请指出。
1:不支持空 属性选择器
只好加个判断条件
2:不支持找页面中不存在的属性
2.1获取手动选中CheckBox后Jq 获取不到 得到的值是undefined
错:jQuery(this).attr("checked")
对:jQuery(this).prop("checked") 或 jQuery(this).is(':checked')
2.2获取手动输入input框的值 得到的值是undefined
错:var data_v = jQuery(e.currentTarget).attr("value");
对:var data_v = jQuery(e.currentTarget).val();
3:live() 方法在 jQuery 版本 1.7 中被废弃,在版本 1.9 中被移除。使用 on() 方法代替。
4:用attr对input输入框赋值不生效
错:var data_v = jQuery(input).attr("value",“ddd”);
对:var data_v = jQuery(input).val(“ddd”);
5:之前 div 有value属性 都可以 通过 .val()方法 获取 现在不行
错:var data_v = jQuery(div).val();
对:var data_v = jQuery(div).attr("value”);