JavaScript 每次按下按钮时递增和递减
JavaScript increment and decrement each time a button is pressed
我试图在每次按下按钮时增加 upBtn
和减少 downBtn
10,000。 downBtn
是递减的,而 upBtn
是连接的。有人可以解释为什么一个工作正常,为什么另一个不工作以及我如何解决它?我是编码新手,可以使用帮助来理解这一点。
upBtn.addEventListener('click', function (event) {
rocketImg.style.top -= 10;
document.getElementById('spaceShuttleHeight').textContent += 10000;
});
downBtn.addEventListener('click', function (event) {
rocketImg.style.top += 10;
document.getElementById('spaceShuttleHeight').textContent -= 10000;
});```
style.top 想要 px 数量。您需要先获取当前金额,然后从中获取 add/subtract 10,然后将其设置回新值。
您的 rocketImg.style.top 是字符串类型而不是数字。尝试将其包装在 parseInt()
(或 parseFloat()
,具体取决于类型),如下所示:parseInt(rocketImg.style.top) += 10)
。 Javascript 自动执行 -
运算符的转换,因为您不能减去字符串。
您需要使用 parseInt
或类似的方式让 JavaScript 知道这应该被视为数字而不是字符串:
const adjustValue = event => {
const increasePressed = event.target.id === 'increase';
const decreasedPressed = event.target.id === 'decrease';
if (increasePressed || decreasedPressed) {
const currentValue = parseInt(document.querySelector('#el').innerHTML);
const el = document.querySelector('#el');
el.innerHTML = increasePressed ? currentValue + 10000 : currentValue - 10000;
}
};
document.querySelector('#container').addEventListener('click', adjustValue);
<div id="container">
<span>Current value: </span><span id="el">0</span><br/>
<input id="increase" type="button" value="Increase" />
<input id="decrease" type="button" value="Decrease" />
</div>
我试图在每次按下按钮时增加 upBtn
和减少 downBtn
10,000。 downBtn
是递减的,而 upBtn
是连接的。有人可以解释为什么一个工作正常,为什么另一个不工作以及我如何解决它?我是编码新手,可以使用帮助来理解这一点。
upBtn.addEventListener('click', function (event) {
rocketImg.style.top -= 10;
document.getElementById('spaceShuttleHeight').textContent += 10000;
});
downBtn.addEventListener('click', function (event) {
rocketImg.style.top += 10;
document.getElementById('spaceShuttleHeight').textContent -= 10000;
});```
style.top 想要 px 数量。您需要先获取当前金额,然后从中获取 add/subtract 10,然后将其设置回新值。
您的 rocketImg.style.top 是字符串类型而不是数字。尝试将其包装在 parseInt()
(或 parseFloat()
,具体取决于类型),如下所示:parseInt(rocketImg.style.top) += 10)
。 Javascript 自动执行 -
运算符的转换,因为您不能减去字符串。
您需要使用 parseInt
或类似的方式让 JavaScript 知道这应该被视为数字而不是字符串:
const adjustValue = event => {
const increasePressed = event.target.id === 'increase';
const decreasedPressed = event.target.id === 'decrease';
if (increasePressed || decreasedPressed) {
const currentValue = parseInt(document.querySelector('#el').innerHTML);
const el = document.querySelector('#el');
el.innerHTML = increasePressed ? currentValue + 10000 : currentValue - 10000;
}
};
document.querySelector('#container').addEventListener('click', adjustValue);
<div id="container">
<span>Current value: </span><span id="el">0</span><br/>
<input id="increase" type="button" value="Increase" />
<input id="decrease" type="button" value="Decrease" />
</div>