Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个函数';s的结果显示为NaN?_Javascript_Input_Web - Fatal编程技术网

Javascript 为什么这个函数';s的结果显示为NaN?

Javascript 为什么这个函数';s的结果显示为NaN?,javascript,input,web,Javascript,Input,Web,我有一段简单的代码: var numb1=document.getElementById(“numb1”) var numb2=document.getElementById(“numb2”) var numb3=document.getElementById(“numb3”) var numb4=document.getElementById(“numb4”) var v1=parseInt(numb1) var v2=parseInt(numb2) var v3=parseInt(numb

我有一段简单的代码:

var numb1=document.getElementById(“numb1”)
var numb2=document.getElementById(“numb2”)
var numb3=document.getElementById(“numb3”)
var numb4=document.getElementById(“numb4”)
var v1=parseInt(numb1)
var v2=parseInt(numb2)
var v3=parseInt(numb3)
var v4=parseInt(numb4)
var t=parseInt(0)
函数myFunction(){
如果(numb1.checked==true){
var t=v1+t
}else if(numb2.checked==true){
var t=v2+t
}else if(numb3.checked==true){
var t=v3+t
}else if(numb4.checked==true){
变量t=v4+t
}
document.getElementById(“demo”).innerHTML=t
}

提交

因为
parseInt(elementObject)
没有返回有效的数字

您想用基数解析该值

var v1 = parseInt(numb1.value, 10);
当值实际发生变化时,必须在函数中获取这些值

另外,添加一些分号,它们并不总是需要的,但是添加分号是一种很好的做法,并且不要重新声明变量

var numb1=document.getElementById(“numb1”);
var numb2=document.getElementById(“numb2”);
var numb3=document.getElementById(“numb3”);
var numb4=document.getElementById(“numb4”);
函数myFunction(){
var v1=parseInt(numb1.value,10);
var v2=parseInt(numb2.value,10);
var v3=parseInt(numb3.value,10);
var v4=parseInt(numb4.value,10);
var t=0;
如果(1.选中){
t=v1+t;
}否则如果(2.选中){
t=v2+t;
}否则,如果(3.选中){
t=v3+t;
}否则如果(4.选中){
t=v4+t;
}
document.getElementById(“demo”).innerHTML=t
}

提交

我同意adeneo的回答。问题在于,您正在
parseInt
ing一个HTML输入元素

你已经得到了答案

但我注意到您使用了
if..else

因此,您只希望用户选择一个值

因此,有一个简短的方法也有助于提高加载速度和减少代码行数

使用
表单

函数myFunction(){
t=parseInt(document.forms[0][“num”].value);
document.getElementById(“demo”).innerHTML=t
}

提交

使用
console.log()
调试此类问题。您不需要对变量的值一无所知。浏览器中内置了许多工具,可以告诉您需要了解的代码信息。我明白了。谢谢你的建议,不客气。您会发现,至少熟悉调试工具的基础知识会使编码变得更容易。答案中有一个“片段”,表明它可以工作。很难回答为什么它对你不起作用,当它在这里起作用的时候?对不起,我想我在它完成之前读了你的答案。它现在也在工作,你能给我解释一下当变量t在函数外时它为什么不能正常工作吗?它可能在函数外声明
t
,但所有
numb1.value
等都必须在函数内,因为函数运行时必须读取值,否则,这些值只能在pageload上读取,永远不会更改。我肯定会更频繁地使用表单。谢谢