我对Java语言还很陌生,目前正在使用它。但是,由于出现以下错误,我无法真正测试我的代码:
Uncaught TypeError: namecaller is not a function
at HTMLButtonElement.onclick (Tools.html:101)
这是我的代码:
div id="content">
<script>
function namecaller(){
var a = "scurvy";
var b = "dog";
document.getElementById("namecaller").innerHTML = "You are a " + a + " " + b;
}
</script>
Namecaller</p>
<button type="button" onclick="namecaller()">
You are a...</button>
我不知道为什么它不起作用,查看了其他StackOverflow问题以及W3教程。
答案 0 :(得分:2)
function namecaller() {
var a = "scurvy";
var b = "dog";
document.getElementById("content").innerHTML = "You are a " + a + " " + b;
}
<div id="content"></div>
<button type="button" onclick="namecaller()">
You are a...</button>
代码似乎有很多问题,例如您的标签未正确编写。标签需要正确打开才能关闭。并且您的脚本应该放在正确的位置,以便对其进行编译。然后,您没有为任何元素指定ID并尝试调用它们。因此,这是如何正确编写代码以进行无错误编译的有效示例。
答案 1 :(得分:2)
有时是因为您的函数名称覆盖了其他一些函数,尤其是系统定义的函数。例如,我曾经做过一个名为“翻译”的函数。稍后,它将报告与您完全相同的错误。解决方案非常简单:只需更改函数名称即可。对我来说,我将其设置为“ function tranlateIt()”,因此问题永远消失了。
答案 2 :(得分:0)
您尚未定义要为其更改值的段落的ID。只需将段落的ID定义为名称调用者,它将起作用。 请参见下面的代码:
<div id="content">
<script>
function namecaller(){
var a = "scurvy";
var b = "dog";
document.getElementById("namecaller").innerHTML = "You are a " + a + " " + b;
}
</script>
<p id = "namecaller">Namecaller</p>
<button type="button" onclick="namecaller()">
You are a...</button