JQuery 在带有 Struts2 的 JSP 中不起作用

JQuery is not working in JSP with Struts2

本文关键字:JSP 不起作用 Struts2 JQuery      更新时间:2023-09-26

我已经在<script>标签中包含JQuery CDN,但它不起作用。我正在使用 intellij,它会提示我这样的警告"未解析的函数或方法 $()"

任何回应都值得赞赏

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <script src="http//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.0.min.js"></script>
    <title>Success</title>
    <script>
        $("#select").click(function() {
            alert("aaaa");
        });
        $("#delete").click(function() {
            alert("aa");
        });
    </script>
</head>
<body>
<label for="person">personname</label>
<input id="person" name = "person" type="text" />
<input id="add"type="button" value="add" />
<input id="delete"type="button" value="delete"/>
<input id="select"type="button" value="select"/>
<input id="update"type="button" value="update"/>

</body>
</html>

既然你已经把所有的js都放在标题中,你必须把它放在document.ready .

<script>
$(document).ready(function(){
 $("#select").click(function() {
            alert("aaaa");
        });
        $("#delete").click(function() {
            alert("aa");
        });
})
</script>

这是因为script标签是一个阻塞标签,当你把它放在头标签中时,它将在 DOM 准备好之前被解析。那时jQuery不知道什么是#select #delete,所以它不可能附加click处理程序。

第二种选择是将所有脚本放在关闭正文标记附近。所以首先 DOM 将准备好元素,然后 js 将被执行。然后,您可以删除

$(document).ready(function(){
})

<body>
    <!--All HTML elements-->
    <script>
        // All your js goes here.
    </script>

关闭标签之前放置脚本有几个优点</body>这超出了这个问题