3 回答
TA贡献1777条经验 获得超10个赞
您可以简单地添加一条if语句,说明如果在添加任何内容之前将0其display 删除,如下if (display.textContent == 0){display.innerHTML = "";}所示
例子
let display = document.querySelector('.display');
let numberButtons = document.querySelectorAll('.number').forEach(function(numberButtons) {
numberButtons.addEventListener('click', showNumber)
function showNumber() {
if (display.textContent == 0){
display.innerHTML = "";
}
display.innerHTML += numberButtons.innerHTML;
}
});
<body>
<div class='container'>
<div class="display">0</div>
<button class='number' id='one'>1</button>
<button class='number' id="two">2</button>
</div>
</body>
或者简单地说,如果您想覆盖所有内容,则意味着在 DOM 中添加任何内容之前只需删除所有内容,您可以简单地尝试以下操作
例子
let display = document.querySelector('.display');
let numberButtons = document.querySelectorAll('.number').forEach(function(numberButtons) {
numberButtons.addEventListener('click', showNumber)
function showNumber() {
display.innerHTML = "";
display.innerHTML += numberButtons.innerHTML;
}
});
<body>
<div class='container'>
<div class="display">0</div>
<button class='number' id='one'>1</button>
<button class='number' id="two">2</button>
</div>
</body>
TA贡献1880条经验 获得超4个赞
看起来你的按钮文本总是数字,显示的结果应该是由这些数字组成的数字。
您可以将结果转换为数字(使用一元+
)并分配:
display.textContent = +(display.textContent + numberButtons.textContent)
innerHTML
注意:当您需要支持 HTML 编码的字符串时,最好保留 for 的使用。否则使用textContent
.
let display = document.querySelector('.display');
let numberButtons = document.querySelectorAll('.number').forEach(function(numberButtons) {
numberButtons.addEventListener('click', showNumber)
function showNumber() {
display.innerHTML = +(display.innerHTML + numberButtons.innerHTML);
}
});
<div class='container'>
<div class="display">0</div>
<button class='number' id='one'>1</button>
<button class='number' id="two">2</button>
</div>
TA贡献1934条经验 获得超2个赞
我仍然需要 +=,但与此同时,我不希望在单击按钮后出现 0。
您可以检查display.innerHTML是否为 0。因此可以决定是连接还是替换字符串。
let display = document.querySelector('.display');
let numberButtons = document.querySelectorAll('.number').forEach(function(numberButtons) {
numberButtons.addEventListener('click', showNumber)
function showNumber() {
if (display.innerHTML == '0') {
display.innerHTML = numberButtons.innerHTML
} else {
display.innerHTML += numberButtons.innerHTML
}
}
});
<div class='container'>
<div class="display">0</div>
<button class='number' id='one'>1</button>
<button class='number' id="two">2</button>
</div>
添加回答
举报