虽然在调用脚本之前将jQuery加载到页面中,但未定义jQuery

时间:2013-06-21 15:16:57

标签: jquery

我有一个html“details”元素作为我页面的目录。我正在尝试根据TOC中当前“活动”元素动态重写文档的html“title”标记(类=“活动”)

但是,虽然它在控制台中有效,但当我实际将其嵌入页面的页脚时,我收到控制台错误:

  

未捕获的ReferenceError:未定义jQuery

我在这个内联脚本之前将jQuery包含在我页面的页脚中。页面上的其他jquery元素工作正常。这个脚本可能有什么问题?

<script>
    jQuery(document).ready(function(){
        var title = jQuery('.myEl').find('a.active').text();
        jQuery('title').text(title);
    });
</script>

此页面的HTML如下所示:

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Customer Testimonials (Page 3)</title>
<link rel="stylesheet" href="styles.css" media="screen" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>
<body>

    <details class="myEl" open="open"><summary>In this article</summary>
        <ol>
            <li><a href="mypage/">Introduction</a></li>
            <li><a href="mypage/2/" class="active">Title for the second page</a></li>
            <li><a href="mypage/3/">Title for the third page</a></li>
        </ol>
    </details>

    <script type='text/javascript' src='scripts.jquery.js' async='async'></script>
    <script>
    jQuery(document).ready(function(){
        var title = jQuery('.myEl').find('a.active').text();
        jQuery('title').text(title);
    });
    </script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

脚本标记中的async='async'表示“不要等待加载此脚本,继续执行其他脚本”。从标签中删除该部分。

下一个问题是列表项中没有类active的链接,因此jQuery选择器不匹配。