JavaScript计算器退格键无法删除屏幕单个字符问题咨询
问题根因
- 你代码中拿到的
screen是标签对应的DOM实例对象,不是输入框内的展示文本,直接修改screen.length属于操作不存在的属性,完全不会生效 - 输入框的内容存储在DOM对象的
value属性中,退格逻辑需要针对value进行处理
修复方案
直接替换原JavaScript逻辑即可:
var screen = document.getElementById("screen"); var backspacebtn = document.getElementById("backspacebtn"); backspacebtn.onclick = () => { // slice(0, -1) 表示截取字符串从开头到倒数第一个字符之前的部分 screen.value = screen.value.slice(0, -1); }
可选优化
如果需要避免输入框为空时重复执行无意义操作,可以加长度判断:
backspacebtn.onclick = () => { const currentVal = screen.value; if (currentVal.length > 0) { screen.value = currentVal.slice(0, -1); } }
内容的提问来源于stack exchange,提问作者Omar Mostafa Abubakr
相关产品推荐
相关产品推荐

