Javascript my的特殊情况:“未捕获的TypeError:无法将属性'innerHTML'设置为null”

Javascript my的特殊情况:“未捕获的TypeError:无法将属性'innerHTML'设置为null”,javascript,oop,javascript-objects,Javascript,Oop,Javascript Objects,让我们玩。。。 点击猫 <div id="bigBox" class="noselect"> <div id="litterBox1" class="noselect"> </div> <div id="clickBox" class="noselect"> <div id="clicks1" class="noselect">Deuce</div

让我们玩。。。 点击猫

    <div id="bigBox" class="noselect">
        <div id="litterBox1" class="noselect">

        </div>

        <div id="clickBox" class="noselect">
            <div id="clicks1" class="noselect">Deuce</div>  
            <div id="clicks2" class="noselect">Mack</div> 
        </div>

        <div id="litterBox2" class="noselect">

        </div>
    </div>

您的代码有几个问题,但您从中得到错误的代码在Cat.cntClicks函数中。您正试图访问调用document.getElementById返回的DOM元素的innerHTML属性,该属性可以返回null—在您的案例中,该属性实际返回为this。作为参数传递给它的clickbox是DOM元素本身,而不是ID

因此,以以下方式更改此行将解决您的问题并引导您进入下一个问题:-

this.clickbox.innerHTML = this.catName + " has " + this.numClicks + " cat-clicks!";

示例中不存在ID为letsPLay的元素。还有一个大写字母L.edit:您还将函数绑定到字符串变量scatname1和catName2的onclick属性,而不是元素本身@杰夫诺埃尔。是的,HTML中的letsPlay元素没有出现在我发布的内容中。而且,是的!我没有点击任何东西。哈谢谢你的新鲜眼睛!是的,这对我来说很有意义。而且,你的修正确实纠正了原来的错误。然而,我遇到了没有错误和没有行动的点击功能是不工作的任何原因。谢谢你提到我的代码有几个问题。如果您有时间详细说明,那将不胜感激。现在看来,cntClicks功能将在窗口加载时自动启动。此时,任何进一步的活动都将完全停止。@eKimsey我想下一步将是正确分配单击事件处理程序,请查看此文档-顺便说一句-您可以通过向上投票来感谢我的回答:-
this.clickbox.innerHTML = this.catName + " has " + this.numClicks + " cat-clicks!";