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