這段時間在試着看公司用的框架是怎么寫的,看到項目中對jquery進一步封裝的這一部分,所以自己試着寫一些demo來模仿框架中的用法。
再一次的,又遇到了一個問題,jsp中引入js的問題,好久沒有自己從頭一步一步地在jsp中引入js了,怎么弄都沒法達到預想的結果。現在把遇到的問題以及解決辦法寫在這里,以便以后遇到后查看。

1.在jsp中,引入js但是瀏覽器總是報404找不到對應的js的處理辦法,
先說結論:js最好還是放在WebContent下,然后clean,如果瀏覽器報404找不到js,那么就在tomcat服務器對應的項目下看是否有對應的js。
解決辦法:jsp中引入js還是寫絕對路徑比較省事,開始的時候我把js這個文件夾放在項目下,即Wyl下,但是運行項目的時候瀏覽器總是提示找不到引入的my.js和jquery.js,然后我就在tomcat下看,具體路徑E:\apache-tomcat-7.0.65\webapps\Wyl,果然這個路徑下沒有生成js這個文件夾,所以肯定找不到引入的my.js等了,試了好幾次,只有把js文件夾放在WebContent下,然后clean項目后,在
上面的路徑下就可以看到引入的js文件夾以及jquery.js等了
2.在jsp或者html中,關於jquery選擇器失效的問題,比如在以下代碼中,
1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 <title>Insert title here</title> 5 6 <script type="text/javascript" src="jquery-2.2.0.js"></script> 7 <script type="text/javascript" src="my.js"></script> 8 <script type="text/javascript"> 9 // var len = $("img").length; 10 // alert(len); 11 // $(function(){ 12 // var len = $("img").length; 13 // alert(len); 14 // }) 15 alert($("img").length);//alert出來的總是0 , 16 </script> 17 </head> 18 <body> 19 20 <form action="tosubmit" method="post" class="yongle"> 21 賬號:<input type="text" name="mingzi" /><br> 22 密碼:<input type="password" name="mima" /><br> 23 <input type="submit" value="登陸" /> 24 </form> 25 <img /> <img /> 26 <a href="dynamicMethod.do" class="yongle">轉到dynamicMethod.jsp</a> 27 <a href="dynamicMethod">也是轉到dynamicMethod.jsp</a> 28 <a href="dynamicMethod.action">哈哈,也是轉到dynamicMethod.jsp</a> 29 </body> 30 <script type="text/javascript"> 31 alert($("img").length);//alert出來的是預想的 2 32 </script> 33 </html>
15行,和31行的兩個alert,這個應該跟瀏覽器加載網頁的先后步驟有關,我自己理解為:在<head>標簽里的<script>代碼執行的時候<body>中的代碼還沒加載出來,所以
jquery選擇器肯定選擇不到任何元素,因此這個jquery對象的長度就是0,jquery對象實際上是一個數組。
因此如果想一次性避免麻煩,則有兩個解決辦法,
方法1 :把<script>標簽后移,放在<body>標簽后,這樣當執行到<script>的時候<body>里的代碼已經加載完成,jquery提供的選擇器等功能也就能夠正常工作了。
實際上,我們現在的這個項目是放在jsp最后的,即body后面的,這種方式比較省事一點。
方法2 :如果實在要把js代碼寫在head標簽里,可以把js代碼寫在$(function(){//js代碼})。
