2016-07-26 95 views
-1

我试图增加从n个输入字段的值,但我得到的结果为NaN的 我要去哪里错了获取从输入值,然后将它们添加,JavaScript的

<table> 
<tr> 
<td><input class="one" name="" value="1" type="text"></td> 
<td><input class="two" name="" value="2" type="text"></td> 
<td><input class="three" name="" value="3" type="text"></td> 
<td><input class="four" name="" value="4" type="text"></td> 
<td class="total"> </td> 
</tr> 
</table> 


<script> 
var tdsOne = document.getElementsByClassName("one").value; 
var tdsTwo = document.getElementsByClassName("two").value; 
var tdsThree = document.getElementsByClassName("three").value; 
var tdsFour = document.getElementsByClassName("four").value; 

var sum = 0; 
sum += tdsOne + tdsTwo + tdsThree + tdsFour; 

console.log(sum);  
document.getElementsByClassName('total')[0].textContent = sum; 

</script> 

回答

1

由于document.getElementsByClassName是一个类似数组的对象,你需要它的指数

var tdsOne = document.getElementsByClassName("one")[0].value; 
var tdsTwo = document.getElementsByClassName("two")[0].value; 
var tdsThree = document.getElementsByClassName("three")[0].value; 
var tdsFour = document.getElementsByClassName("four")[0].value; 

编辑

如果您正在寻找算术加指它ition,这些值需要转换为数字。您可以使用Unary plus操作

sum += +tdsOne + +tdsTwo + +tdsThree + +tdsFour; 

JSFIDDLE

+0

什么总和的结果,您的解决方案涉及到1234 –

+2

还可以使用数()是能总结这些结果 号(document.getElementsByClassName(”一个“)[0]。价值); 重复为后继数值 – Fortune

+0

@Fortune out of curriosity什么是[0]代表 –

相关问题