将JavaScript更改为jQuery首次Struts 1.3应用程序

DJR*_*DJR 5 html javascript jquery jsp jsdt

我正在将项目中的javascript更改为jquery。这是我第一次使用Jquery,希望我犯一些愚蠢的错误。我在下面的.js文件中放置了一个简单的JQ警报功能。

$(document).ready(function(){
  $("#stt").change(function(){
    alert("hi");
  });
});
Run Code Online (Sandbox Code Playgroud)

因此,目的是在更改id =“ stt”的td元素的值时引发警报msg。

<tr id="stttr"> 
<td id="stt"> <html:text property="stt" size="20" maxlength="20"  style="height:12px; width: 180px;" /></td></tr>
Run Code Online (Sandbox Code Playgroud)

这就是im如何在jsp的head标签之间引用jquery。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>
<script src="javascript/SearchPanelJQ.js"></script>
<script src="javascript/CalendarPopup.js"></script>
Run Code Online (Sandbox Code Playgroud)

Calendarpop.js是一个我不想替换的旧javascript文件(在所有浏览器上都可以正常工作)。现在,当我在启用了IE脚本调试的浏览器中访问此页面时,出现以下错误。

HTML1201: localhost is a website you've added to Compatibility View. 
ReportingTemplate.jsp
SEC7115: :visited and :link styles can only differ by color. Some styles were not     applied to :visited. 
ReportingTemplate.jsp
SCRIPT5007: The value of the property '$' is null or undefined, not a Function object 
SearchPanelJQ.js, line 1 character 1
Run Code Online (Sandbox Code Playgroud)

最后一行告诉我设置不正确。你能告诉我什么吗?

我安装了jsdt jquery插件,并且正在使用JQ v1.9。该项目是一个struts项目。

编辑:1)当JSP中包含JQ函数时,它起作用。当它在不同的.js文件中时,它可以正常工作。2)即使我在引用中包含http :,也仅在document.ready函数位于同一JSP中时才起作用,而在不同的.js文件中时则不起作用。这超出了目的,因为在我的项目的多个页面中将使用相同的验证。

HC_*_*HC_ 2

备查:

  • 在 Chrome 中运行(或其他用户指出的任何浏览器)

  • 右键单击>检查元素>控制台

  • 读取错误日志(控制台可以提供js、php等错误信息,帮助定位具体发生故障的行)

你的

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

应该

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

用户2736012提供的原因是:

OP 使用“协议相关”url,它自动使用用于获取页面的协议。在这种情况下,如果协议是file://home/User/Desktop/foo.html,协议相对 url 就变成file://ajax.googlapis...,这当然不行。但是当使用 http 获取页面时它会起作用,因为它会http://ajax.googleapis...

  • OP 使用“协议相关”url,它自动使用用于获取页面的协议。在这种情况下,如果协议是 `file://home/User/Desktop/foo.html`,协议相对 url 就会变成 `file://ajax.googlapis...`,这当然是行不通的。但是当使用“http”获取页面时它会起作用,因为它将是“http://ajax.googleapis...”。 (3认同)
  • 是的,解释为什么会出现这种情况将有助于OP不再犯同样的错误。 (2认同)