$(document).ready(…)不会被调用

我有以下ejs模板

<!doctype html> <html> <head> <meta charset="utf-8"> <title>Emasc Editor</title> <style> .list{ display: inline-block; } </style> <script type="text/javascript" src="/js/jquery-1.7.1.min.js"></script> <script type="text/javscript"> $(document).ready(function(){ alert('test'); $("#setMembershipsButton").click(function(e){ // send selected person and groups to server and create memberships data = { person: $('#person_list').val(), groups: $('#group_list').val() }; $.post('/newConnections', data); }); $("#person_list").change(function(){ alert('test'); // send selected person to server and retrieve memberships $.post('/getPersonGroups', { personID: $('#person_list').val() }, function(data, textStatus){ $('#group_list option').removeAttr('selected'); for(var i=0; i<data.ids.length; i++){ $('#group_list option[value=' + data.ids[i] + ']').attr('selected', 'selected'); } }); }); }); </script> </head> <body> <div class="list"> <select id="person_list" size="<%= persons.length+1 %>"> <% for( var i=0; i<persons.length; i++){ %> <option value="<%= persons[i].id %>"><%= persons[i].name %></option> <% } %> </select> <form method="post" action="/newPerson"> <input type="text" name="user[name]" /> <input type="submit" value="Submit" /> </form> </div> <div class="list"> <select id="group_list" multiple size="<%= groups.length+1 %>"> <% for( var i=0; i<groups.length; i++){ %> <option value="<%= groups[i].id %>"><%= groups[i].name %></option> <% } %> </select> <form method="post" action="/newGroup"> <input type="text" name="group[name]" /> <input type="submit" value="Submit" /> </form> </div> <br/> <input id="setMembershipsButton" type="button" value="Set Memberships"></input> </body> </html> 

而第一个警报('testing')永远不会被调用。 我在这里错过了什么?

您的脚本types无效:

 <script type="text/javscript"> 

应该

 <script type="text/javascript"> 

来自Mozilla :

types
该属性标识embedded在脚本元素中或通过元素的src属性引用的代码的脚本语言。 这被指定为MIMEtypes; 支持的MIMEtypes包括text / javascript,text / ecmascript,application / javascript和application / ecmascript。 如果此属性不存在,则该脚本被视为JavaScript。

但是,如果浏览器未识别该types,则该块将被忽略。 最好完全省略type属性,以避免模糊。