TypeError:Functionname不是HTMLButtonElement.onClick上的函数

时间:2018-07-11 09:53:51

标签: javascript html typeerror

我对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教程。

3 个答案:

答案 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