[英]How do I remove the 0 once a button is clicked?
例如,當我單擊1
或2
時, display
的0
將被單擊的按鈕覆蓋。
let display = document.querySelector('.display'); let numberButtons = document.querySelectorAll('.number').forEach(function(numberButtons) { numberButtons.addEventListener('click', showNumber) function showNumber() { 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>
您可以簡單地添加一個if
語句,指出如果display
中存在0
,則在添加諸如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>
似乎您的按鈕文本始終是數字,並且顯示的結果應該是由這些數字組成的數字。
您可以將結果轉換為數字(使用一元+
)並分配:
display.textContent = +(display.textContent + numberButtons.textContent)
注意:當您需要支持 HTML 編碼字符串時,最好保留使用innerHTML
。 否則使用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>
我仍然需要 +=,但同時,我不希望在單擊按鈕后出現 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.