JS出现$未定义错误,已引入jQuery CDN仍无法解决求排查
解决"$ not defined"错误的几个关键步骤
嘿,我一眼就发现了一个致命的小错误,先给你指出来——你引入自己的mainjs.js时用了href属性,这完全不对!script标签加载外部脚本必须用src属性,这大概率是导致你报错的核心原因。下面是详细的排查和修复方案:
修复脚本引入的属性错误
你的HTML里这段代码写错了:<script href="mainjs.js">必须改成
src属性:<script type="text/javascript" src="mainjs.js"></script>检查jQuery CDN的加载兼容性
如果你的网站是HTTPS协议的,用HTTP的CDN链接会被浏览器拦截(混合内容限制),把jQuery的链接改成HTTPS版本:<script type="text/javascript" src="https://code.jquery.com/jquery-1.7.1.min.js"></script>另外,jQuery 1.7.1是比较老的版本了,也可以考虑换成更稳定的新版本(比如3.x系列),避免一些兼容性问题。
确认脚本执行顺序
虽然你已经把jQuery放在了自己的脚本前面,但还是要确保:所有依赖jQuery的自定义脚本,都必须在jQuery加载完成之后引入,不能颠倒顺序。处理jQuery的noConflict模式
如果页面里还引入了其他JS库(比如Prototype、MooTools),可能和jQuery的$标识符冲突,这时候jQuery会自动进入noConflict模式,$就不能用了。你可以把代码改成这样来兼容:// 用jQuery代替$,或者在ready回调里把$作为参数传入 jQuery(document).ready(function ($) { $(".menu-icon").on("click", function () { $(".navlist").toggleClass("active"); $(this).toggleClass("open"); }); });排查网络加载失败问题
打开浏览器开发者工具(按F12),切换到「网络」标签,刷新页面,查看jQuery的请求状态:- 如果显示404,说明CDN链接无效,换一个可靠的链接;
- 如果显示加载被阻止,检查是否是浏览器插件(比如广告拦截器)拦截了请求。
内容的提问来源于stack exchange,提问作者Chase Quinn
相关产品推荐
相关产品推荐

