Javascript 为什么我在使用parseINt或undefined时得到NaN?
尽管使用了Javascript 为什么我在使用parseINt或undefined时得到NaN?,javascript,Javascript,尽管使用了parseInt或.value,但我还是得到了NaN,我不明白这是为什么。我也尝试过更改代码,但是我得到了未定义的。 作为一个初学者,我不明白我做错了什么,尽管它很简单。有什么建议吗 const btn=document.querySelector('.btn'); btn.addEventListener('click',calcWinner); 函数calcWinner(e){ const powerG=document.querySelector(“#power-g”); co
parseInt
或.value
,但我还是得到了NaN
,我不明白这是为什么。我也尝试过更改代码,但是我得到了未定义的
。
作为一个初学者,我不明白我做错了什么,尽管它很简单。有什么建议吗
const btn=document.querySelector('.btn');
btn.addEventListener('click',calcWinner);
函数calcWinner(e){
const powerG=document.querySelector(“#power-g”);
const techG=document.querySelector(“#tech-g”);
const chanceG=document.querySelector(“#chance-g”);
const powerF=document.querySelector(“#power-f”);
const techF=document.querySelector('tech-f');
const chanceF=document.querySelector(“#chance-f”);
让gokuR=parseInt(powerG+techG+chanceG)
设friezeR=parseInt(powerF.value)+parseInt(techF.value)+parseInt(chanceF.value);
log(parseInt(gokuR.value));
}
战斗机会
权力
技巧
机会
战斗机会
权力
技巧
机会
获胜者:
没有HTML,很难给出准确的答案。但是parseInt()表示字符串。您试图在元素而不是字符串上使用它。您需要获取HTML元素的值,而不是元素本身
而不是:
const powerG = document.querySelector('#power-g');
您需要执行以下操作:
const powerG = document.querySelector('#power-g').value;
参考:首先,获取值而不是元素,例如:
const powerG = document.querySelector('#power-g').value;
然后使用、或将字符串
数字转换为实际数字,即可计算结果
堆栈片段
const btn=document.querySelector('.btn');
btn.addEventListener('click',calcWinner);
函数calcWinner(e){
const powerG=document.querySelector(“#power-g”).value;
const techG=document.querySelector(“#tech-g”).value;
const chanceG=document.querySelector(“#chance-g”).value;
const powerF=document.querySelector(“#power-f”).value;
const techF=document.querySelector(“#tech-f”).value;
const chanceF=document.querySelector('#chance-f').value;
设gokuR=Number(powerG)+Number(techG)+Number(chanceG);
设friezeR=parseInt(powerF)+parseInt(techF)+parseInt(chanceF);
控制台日志(gokuR);
控制台日志(friezeR);
}
战斗机会
权力
技巧
机会
战斗机会
权力
技巧
机会
获胜者:
也提供HTML片段,因为我们没有HTML,所以我们不能做太多friezeR
工作,对吗gokuR
没有,因为您没有使用。value
没有,它没有,我仍在获取。将信息提交回服务器时使用了表单
标记,因此在您的情况下使用有点不正确。另外,如果您还没有看到和@TodorIvanov what arrow函数,请参见?您需要传递parseInt两件事:要解析的字符串和基数(通常为10)parseInt(“3”,10)==3
谢谢这有帮助,但是double+是怎么叫的?@TodorIvanov没有真正的double+
,额外的+
在变量前面加前缀时做什么,它把它转换成一个数字,就像parseInt
或number()
那样。@TodorIvanov我用几个链接更新了我的答案(蓝色文本)到将字符串转换为数字的3种方法。