jquery 缺少对象 错误

最近这几天写前端jquery用IE调试老是出现“缺少对象”错误,终于找出来原因了。


网友说,”缺少对象“99%的原因是jquery引用路径访问不到。于是我就去看了我的jquery引用路径,果然问题就出在这里。

柯南说:真相只有一个。除去一切不可能情况之后剩下的,无论多么不合理,那就是真相。


众所周知


一、 js、html、图片等静态资源在springMVC里是不能被直接访问到的,因为被Dispatcherservlet拦截了。要想访问需要在spring-mvc.xml中配置。


二、 jsp是不被Dispatcherservlet拦截的,所以用户可以直接通过url访问到jsp文件,为了不让用户直接访问jsp,就把jsp放在WEB-INF下,因为web-inf下的文件不能被直接访问,只能通过controller访问。


说道这里,大部分jquery引用不到的原因也就清晰了


1 把jquery库放在了WEB-INF下


2 jquery库没有放在WEB-INF下,但是没有在spring-mvc.xml中为它所在的文件夹配置静态资源访问

<mvc:resources mapping="/js/**" location="/js/" />


3 由于相对路径不熟悉,引用了错误的路径


这是错误的代码:

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<!DOCTYPE html>
<html>
<head>
    <script src="WEB-INF/jquery-3.2.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("button").click(function(){
                $("p").toggle();
            })
        });
    </script>
</head>
<body>
<button type="button">切换</button>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>

</body>
</html>

这是错误的存放位置:


修改后的代码

<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<!DOCTYPE html>
<html>
<head>
    <script src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("button").click(function(){
                $("p").toggle();
            })
        });
    </script>
</head>
<body>
<button type="button">切换</button>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>

</body>
</html>


修改后的jquery位置



至此,问题应该能解决了。

如有错误观点,欢迎指正。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值