为了账号安全,请及时绑定邮箱和手机立即绑定

单击按钮后如何删除 0?

单击按钮后如何删除 0?

RISEBY 2023-03-10 15:21:43
例如,当我单击其中一个时1,或者将被单击的按钮覆盖。20displaylet 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>
查看完整描述

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>


查看完整回答
反对 回复 2023-03-10
?
慕村225694

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>


查看完整回答
反对 回复 2023-03-10
?
撒科打诨

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>


查看完整回答
反对 回复 2023-03-10
  • 3 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信