Javascript:未捕获的 TypeError:无法在 HTMLButtonElement.but.onclick 处设置属性“innerHTML”为空(

Posted

技术标签:

【中文标题】Javascript:未捕获的 TypeError:无法在 HTMLButtonElement.but.onclick 处设置属性“innerHTML”为空(【英文标题】:Javascript: Uncaught TypeError: Cannot set property 'innerHTML' of null at HTMLButtonElement.but.onclick ( 【发布时间】:2017-10-29 14:54:32 【问题描述】:

我正在尝试获取它,以便每次点击随机按钮时,都会显示一个新 div 的内部 html - 但是我在 javascript 控制台中收到错误消息“无法设置属性”。有人可以解释这意味着什么以及我正在做什么来导致它吗?

<h1>Test</h1>

<div id="quote1">this is quote number 1</div>

<p id="quote 2">this is quote number 2</p>

<div id="quote 3">this is quote number 3</div>

<button id="button1">Randomise</button>



<script type="text/javascript">

var but = document.getElementById('button1');
but.onclick = function() 
document.getElementById("quote1").innerHTML = "hi";
document.getElementById("quote2").innerHTML =  "ho";


【问题讨论】:

Cannot set property 'innerHTML' of null的可能重复 【参考方案1】:

那是因为 id 是 quote 2 而不是 quote2 即您在 quote 2quote 3 之间有额外的空间

改成

<p id="quote2">this is quote number 2</p>

<h1>Test</h1>

<div id="quote1">this is quote number 1</div>

<p id="quote2">this is quote number 2</p>

<div id="quote3">this is quote number 3</div>

<button id="button1">Randomise</button>



<script type="text/javascript">

var but = document.getElementById('button1');
but.onclick = function() 
document.getElementById("quote1").innerHTML = "hi";
document.getElementById("quote2").innerHTML =  "ho";

 
</script>

【讨论】:

【参考方案2】:

您的 id 设置为“quote 2”,但您将其引用为“quote2”。它显示“无法设置属性”,因为它找不到任何引用为“quote2”的元素。将您的 id 更改为“quote2”。和“quote3”一样 这应该工作

<h1>Test</h1>

<div id="quote1">this is quote number 1</div>

<p id="quote2">this is quote number 2</p>

<div id="quote3">this is quote number 3</div>

<button id="button1">Randomise</button>



<script type="text/javascript">

    var but = document.getElementById('button1');
    but.onclick = function() 
            document.getElementById("quote1").innerHTML = "hi";
            document.getElementById("quote2").innerHTML =  "ho";

        
    </script>

【讨论】:

谢谢!我怎么忽略了我不知道啊。 没问题。下次只需按照您的代码流程进行操作即可。

以上是关于Javascript:未捕获的 TypeError:无法在 HTMLButtonElement.but.onclick 处设置属性“innerHTML”为空(的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 中的数组错误:未捕获的 TypeError:无法读取未定义的属性“x”

未捕获的 TypeError:forEach 不是 javascript 函数中的函数错误

Javascript:未捕获的 TypeError:无法读取 null 的属性“indexOf”

如何在 JavaScript 中将日期增加一个月?接收未捕获的 TypeError [关闭]

Javascript:未捕获的 TypeError:无法在 HTMLButtonElement.but.onclick 处设置属性“innerHTML”为空(

未捕获的 TypeError:app.all 不是函数