当我按下“获取金钱”时,它会添加 [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>
鉴于 Cash
对 text
函数不可见,您现在可能想知道为什么观察到该值的 [object HTMLDivElement]
text
函数中的 Cash
而不是 undefined
。原因是因为 DOM 中还有一个具有相同名称 id 的元素,即 Cash
,它变成 global property in the document 。通过全局声明 var Cash = 0
,这将隐藏对 DOM 元素的 Cash 引用。
关于javascript - 试图让文本表示变量,但它只显示 [object HTMLDivElement],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60626847/