当我按get money时,它将添加[object HTMLDivElement] 1而不是仅添加1。这是代码:

<script>
    function cash(){
        var Cash = 0
        document.getElementById("Cash").textContent = Cash
    }
        function text(){
            Cash = Cash + Number(1)
            document.getElementById("Cash").textContent = Cash
        }
    </script>
</head>

<body onload="cash()">
    <div id="Cash"></div>
    <button class="button-long" onclick="text()">Get Money</button>
</body>


我不知道发生了什么,而且我没有发现其他解决方法。 CSS与它无关,我已经检查了很多次代码,也进行了很多次更改和测试,但是在此网站或任何其他网站上都没有找到任何相关信息。我想对此有所帮助,因为我不知道发生了什么。

最佳答案

您在Cash函数内声明了cash变量,而text函数不可见。要解决此问题,您需要将Cash声明移到cash函数之外,这对于两个函数都可见,如下所示:

<head>
  <script>
    var Cash = 0

    function cash(){
      document.getElementById("Cash").textContent = Cash
    }

    function text(){
      Cash = Cash + Number(1)
      document.getElementById("Cash").textContent = Cash
    }
  </script>
</head>

<body onload="cash()">
    <div id="Cash"></div>
    <button class="button-long" onclick="text()">Get Money</button>
</body>


鉴于Cashtext函数不可见,您现在可能想知道为什么在[object HTMLDivElement]函数而不是Cash中观察textundefined值。这样做的原因是因为您在DOM中也有一个具有相同名称ID的元素,即Cash,该元素变为global property in the document。通过全局声明var Cash = 0,将隐藏Cash引用到DOM元素。

关于javascript - 试图让文本说一个变量,但是它只显示[object HTMLDivElement],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60626847/

10-11 15:04