Javascript 我以为我定义了jQuery函数,但我一直得到一个“";“未定义”;错误为什么会这样?

Javascript 我以为我定义了jQuery函数,但我一直得到一个“";“未定义”;错误为什么会这样?,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我的HTML文件: <html> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" /> <script src="script.js" type="text/javascript"></script> </head> <body>

我的HTML文件:

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" onClick="myFunction()" />
        </form>
        <div id="result"></div>
    </body>
</html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" />
        </form>
        <div id="result"></div>
    </body>
</html>
我有Firebug,每当我点击按钮时,Firebug就会向我抛出以下错误:

ReferenceError:未定义myFunction


我做错了什么?

可能是由于文件引用问题

更好的做法是将事件附加到js文件中,而不是HTML

<form name="someForm">
    <input type="button" id="btn" value="Click me" />
</form>


$('#btn').on('click', function(){
    $("#result").html("BUTTON WORKS");
});

$('#btn')。在('click',function()上{
$(“#结果”).html(“按钮工作”);
});

可能是由于文件引用问题

更好的做法是将事件附加到js文件中,而不是HTML

<form name="someForm">
    <input type="button" id="btn" value="Click me" />
</form>


$('#btn').on('click', function(){
    $("#result").html("BUTTON WORKS");
});

$('#btn')。在('click',function()上{
$(“#结果”).html(“按钮工作”);
});

脚本
不能是HTML中的自动关闭标记(它在某些浏览器上工作,具体取决于doctype,但不正确)。您必须添加结束标记

替换

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />


由于此错误,可能无法正确分析指向脚本的脚本元素

发件人:

脚本元素必须同时具有开始标记和结束标记

大宗报价


script
不能是HTML中的自动关闭标记(它在某些浏览器上工作,具体取决于doctype,但不正确)。您必须添加结束标记

替换

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />


由于此错误,可能无法正确分析指向脚本的脚本元素

发件人:

脚本元素必须同时具有开始标记和结束标记

大宗报价


您是在本地打开该文件(地址栏中有
file://
)还是从某个服务器打开该文件(地址栏中有
http://
协议)?因为若在本地打开文件,实际上会尝试从以下地址加载jquery:

file://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js

这是不正确的。发生这种情况是因为您使用
//ajax.googleapis.com/…
作为地址,它引用与当前打开的页面相同的协议

将其更改为:


将文件上载到某个服务器(甚至在本地安装一个)并通过完整的http请求对其进行测试。

您是在本地(地址栏中有
文件://
)还是从某个服务器(地址栏中的
http://
协议)打开该文件?因为若在本地打开文件,实际上会尝试从以下地址加载jquery:

file://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js

这是不正确的。发生这种情况是因为您使用
//ajax.googleapis.com/…
作为地址,它引用与当前打开的页面相同的协议

将其更改为:


将您的文件上传到某个服务器(甚至在本地安装一个)并通过完整的http请求对其进行测试。

我通过结合@Susbanth、@MBO和@dystroy的答案解决了这个问题

这是我的新HTML文件:

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" onClick="myFunction()" />
        </form>
        <div id="result"></div>
    </body>
</html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" />
        </form>
        <div id="result"></div>
    </body>
</html>

我将onClick事件设置为jQuery事件。

我通过组合来自@Susbanth、@MBO和@dystroy的答案解决了这个问题

这是我的新HTML文件:

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" onClick="myFunction()" />
        </form>
        <div id="result"></div>
    </body>
</html>
<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script src="script.js" type="text/javascript"></script>
    </head>
    <body>
        <form name="someForm">
            <input type="button" value="Click me" />
        </form>
        <div id="result"></div>
    </body>
</html>

我将onClick事件设置为jQuery事件。

实际上在HTML中没有自动关闭标记。甚至
也被解析为
,标记末尾带有垃圾。但只有在script、iframe等标记中才有意义……实际上在HTML中没有自动关闭标记。甚至
也被解析为
,标记末尾带有垃圾。但只有在诸如script、iframe之类的标记中才有意义……您要在线附加事件。这就是你做错的地方。@shmiddy:这怎么会导致错误消息呢?你在在线附加事件。这就是你做错的地方。@shmiddy:那怎么会导致错误消息呢?