Javascript 我以为我定义了jQuery函数,但我一直得到一个“";“未定义”;错误为什么会这样?
我的HTML文件: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>
<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:那怎么会导致错误消息呢?