冲突的解决办法

supesite 等程序中 $ 函数与 jquery 冲突的解决办法

北慕城南 提交于 2020-02-28 11:47:58
1.替换选择器函数 将原程序中的: function $(id) { return document.getElementById(id); } 替换为: function $(id) { if (typeof jQuery == 'undefined' || (typeof id == 'string' && document.getElementById(id))) { return document.getElementById(id); } else if (typeof id == 'object' || !/^\w*$/.exec(id) || /^(body|div|span|a|input|textarea|button|img|ul|li|ol|table|tr|th|td)$/.exec(id)){ return jQuery(id); } return null; } 做一个兼容,对于以前直接用字符串ID的调用依旧使用document.getElementById(id)去获取DOM对象;而如果传入的ID是对象,或者里面有特殊符号(如 # . : ^ 等 jQuery 选择器符号)或者是常用的html标签,就使用jQuery选择器去获取jQuery对象。 2.需要先加载jquery的库,然后加载声明这个兼容的 $ 函数的js文件,以覆盖掉jquery的 $