繁体   English   中英

NaN第二次我按下“按钮”

[英]NaN the second time i press the ''Button''

 let input = document.getElementById('input'); let button = document.getElementById('btn'); let output = document.getElementById('totalTip'); button.addEventListener('click', () => { input = input.value; output.innerHTML = (input * 5) + ' $'; }); 

我创建了一个小函数来计算input * 5 ,但是每次尝试输入另一个数字时,都会出现此错误:

无法读取HTMLButtonElement.button.addEventListene上未定义的属性“值”。

 button.addEventListener('click', () => { input = input.value; output.innerHTML = input * 5 + ' $'; }); 

先谢谢您的帮助。

第一次input是一个Element ,在事件回调中,您将input重新定义为NumberStringinput = input.value;

这意味着您正在第二次尝试获取.value ,例如10 ,它不存在,所以undefined * 5 === NaN

我认为这可能是您要追求的目标:

HTML:

<button>Click for 5x</button>
<input type="text">
<div class="output"</div>

js:这是您的问题,输入值是String ,您需要先将parseInt转换为Number ,然后再乘以5

const button = document.querySelector('button');
const input = document.querySelector('input');
const output = document.querySelector('.output');

button.addEventLister('click', () => {
  const number = parseInt(input.value)
  output.innerHTML = number * 5 + ' $';
})

另外请注意,您不应在此click事件中重新分配输入。 因此,请改用其他变量名称来分配临时输入值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM