为什么在jQuery加载后会出现jQuery引用错误

为什么在jQuery加载后会出现jQuery引用错误,jquery,asp.net,master-pages,Jquery,Asp.net,Master Pages,我在一个简单的jQuery测试中遇到了一个错误。请查看此图,以显示文件加载的顺序以及jQuery在错误发生之前已加载的事实 这是我的内容页: <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID

我在一个简单的jQuery测试中遇到了一个错误。请查看此图,以显示文件加载的顺序以及jQuery在错误发生之前已加载的事实

这是我的内容页:

    <asp:Content
    ID="Content1"
    ContentPlaceHolderID="HeadContent"
    runat="server">
</asp:Content>
<asp:Content
    ID="Content2"
    ContentPlaceHolderID="MainContent"
    runat="server">

    <textarea id="txtArea"> hi </textarea>

    <script type="text/javascript">
        // Shorthand for $( document ).ready()
        $(function () {

            $('txtArea').val = "bye";
        });
    </script>
</asp:Content>
“我在母版页末尾、结束标记之前加载了脚本”这句话让我觉得你的问题就在这里


在母版页顶部加载脚本,这将解决您的问题

在页面的呈现源代码中,jquery脚本是否包含在此处显示的代码段上方?
console.log($,jQuery)
$(function()…
行上方显示了什么?您是否在母版页中引用了jQuery?可能是库的顺序在提供的脚本之后。还要检查javascript文件的加载顺序。jQuery插件(ui、validate、datatables)必须在jquery本身之后加载。错误也可能会在那里抛出。正如Talspaugh所说的那样…在重新加载文档结尾之前,您正在运行页面脚本,jquery已加载感谢大家的快速响应。这就是问题所在,也是有意义的。我读到脚本应该在文档结尾加载,我不知道为什么我这么做了。你可能在什么地方读错了。脚本应该在所有依赖项加载后运行。确保这一点的一个好方法是将所有代码放在一个包装器中,该包装器等待文档加载。
$(document).ready(函数(事件){/*代码在这里*/})
这允许您避免将代码块放在页面的末尾(通常最好将代码放在页首),但仍会等待所有外部JS加载完毕。
GET TestFolder/TestLoadingScriptsFromDifferentFolderLevel.aspx [HTTP/1.1 200 OK 1351ms]
GET Styles/Site.css [HTTP/1.1 200 OK 4ms]
GET WebResource.axd [HTTP/1.1 200 OK 351ms]
GET http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.0.min.js [HTTP/1.1 200 OK 405ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.min.js [HTTP/1.1 200 OK 417ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/themes/le-frog/jquery-ui.css [HTTP/1.1 200 OK 338ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/themes/mint-choc/jquery-ui.css [HTTP/1.1 200 OK 285ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js [HTTP/1.1 200 OK 394ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/additional-methods.min.js [HTTP/1.1 200 OK 380ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js [HTTP/1.1 200 OK 419ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css [HTTP/1.1 200 OK 61ms]
GET http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables_themeroller.css [HTTP/1.1 200 OK 57ms]
GET http://ajax.aspnetcdn.com/ajax/knockout/knockout-3.0.0.debug.js [HTTP/1.1 200 OK 129ms]
ReferenceError: $ is not defined TestLoadingScriptsFromDifferentFolderLevel.aspx:45
GET WebResource.axd [HTTP/1.1 200 OK 2ms]