Javascript 金额计算不当
程序应执行以下操作:用户应在右侧的输入字段中输入数字,然后单击计算。该值将被推送到数组中。这将做X次。此时X硬编码为5,但这不是问题所在 问题是,在数组中推送最后一个数字后,将计算数组的和并将其显示在网页上。可视化不是问题,我非常确信计算是正确的。我认为问题在于如何在数组中读取或输入输入。不过我可能错了 最后一件事,计算所有内容的函数是compute1。 编辑:实际错误:Javascript 金额计算不当,javascript,html,Javascript,Html,程序应执行以下操作:用户应在右侧的输入字段中输入数字,然后单击计算。该值将被推送到数组中。这将做X次。此时X硬编码为5,但这不是问题所在 问题是,在数组中推送最后一个数字后,将计算数组的和并将其显示在网页上。可视化不是问题,我非常确信计算是正确的。我认为问题在于如何在数组中读取或输入输入。不过我可能错了 最后一件事,计算所有内容的函数是compute1。 编辑:实际错误:未捕获类型错误:无法读取null的属性“值” 这是完整的源代码: <!DOCTYPE HTML> <head
未捕获类型错误:无法读取null的属性“值”
这是完整的源代码:
<!DOCTYPE HTML>
<head>
<title>Asd</title>
<style>
.btn{
width : 30px;
}
.btn2{
width : 100px;
height : 40px;
}
</style>
</head>
<body>
<center>
<table>
<tr>
<td>Number of elements:</td><td><input type="number" id="textField" class="btn"></input></td>
<td>Please enter a number.</td> <td><input type="number" id="textFiledInp" class="btn"></input></td>
</tr>
</table>
<button class="btn2" onclick="compute1()" >compute</button>
<p id="output"></p>
</center>
</body>
<script>
//var eleNum = parseInt(document.getElementById("textField"));
var eleNum = 5;
var arr = new Array;
function compute1()
{
console.log("hi");
if(eleNum > 0)
{
eleNum--;
arr.push(parseInt(document.getElementById("textFieldInp").value));
console.log(arr[arr.length-1]);
}
else{
var sum = 0;
for(var i = 0; i < arr.size; i++)
{
sum+= arr[i];
}
document.getElementById("output").innerHTML = sum;
}
}
</script>
自闭症
.btn{
宽度:30px;
}
.btn2{
宽度:100px;
高度:40px;
}
元素数:
请输入一个数字。
计算
//var eleNum=parseInt(document.getElementById(“textField”);
var-eleNum=5;
var-arr=新数组;
函数compute1()
{
控制台日志(“hi”);
if(eleNum>0)
{
eleNum--;
arr.push(parseInt(document.getElementById(“textFieldInp”).value));
控制台日志(arr[arr.length-1]);
}
否则{
var总和=0;
对于(变量i=0;i
据我所知,您的计算是正确的,但缺少一个括号console.log(arr[arr.length-1)
应该是:
console.log(arr[arr.length-1]);
id="textFieldInp"
据我所知,您的计算是正确的,但缺少一个括号
console.log(arr[arr.length-1)
应该是:
console.log(arr[arr.length-1]);
id="textFieldInp"
您输入的ID错误:
<td>Please enter a number.</td> <td><input type="number" **id="textFiledInp"** class="btn"></input></td>
将id=“textFiledInp”
更改为id=“textFieldInp”
,它应该可以工作
并且size
不是javascript数组的正确属性。您应该在循环中使用length
属性
如果你想输入你声明的数字量,你应该这样写(我不知道这是否是你想要的):
函数计算1()
{
控制台日志(“hi”);
if(eleNum>0)
{
eleNum--;
arr.push(parseInt(document.getElementById(“textFieldInp”).value));
控制台日志(arr[arr.length-1]);
}
否则{
var总和=0;
对于(变量i=0;i
您输入的ID错误:
<td>Please enter a number.</td> <td><input type="number" **id="textFiledInp"** class="btn"></input></td>
将id=“textFiledInp”
更改为id=“textFieldInp”
,它应该可以工作
并且size
不是javascript数组的正确属性。您应该在循环中使用length
属性
如果你想输入你声明的数字量,你应该这样写(我不知道这是否是你想要的):
函数计算1()
{
控制台日志(“hi”);
if(eleNum>0)
{
eleNum--;
arr.push(parseInt(document.getElementById(“textFieldInp”).value));
控制台日志(arr[arr.length-1]);
}
否则{
var总和=0;
对于(变量i=0;i
您的元素的id
中有一个输入错误:
id="textFiledInp"
……应该是:
console.log(arr[arr.length-1]);
id="textFieldInp"
否则,getElementById()
找不到元素并返回null
,因此会出现您引用的错误消息
您的for
循环正在尝试使用arr.size
,但它应该是arr.length
将eleNum
预设为5
似乎有点奇怪,但我不完全清楚您试图在那里做什么,因此我不确定建议是什么。我怀疑您只需要将注释掉的行移到函数中,然后添加.value
(并取消注释):
此外,在未指定第二个参数中的基数的情况下,切勿使用
parseInt()
。这对于用户输入的数据尤其重要。(因为否则浏览器可能会将前导0解释为八进制,前导0x解释为十六进制。)您的元素的id
中存在键入错误:
id="textFiledInp"
……应该是:
console.log(arr[arr.length-1]);
id="textFieldInp"
否则,getElementById()
找不到元素并返回null
,因此会出现您引用的错误消息
您的for
循环正在尝试使用arr.size
,但它应该是arr.length
将eleNum
预设为5
似乎有点奇怪,但我不完全清楚您试图在那里做什么,因此我不确定建议是什么。我怀疑您只需要将注释掉的行移到函数中,然后添加.value
(并取消注释):
此外,在未指定第二个参数中的基数的情况下,切勿使用
parseInt()
。这对于用户输入的数据尤为重要(否则浏览器可能会将前导0解释为八进制,前导0x解释为十六进制)修复HTML中的打字错误后,应将代码更改为:
var eleNum = 5;
var arr = []; //see explanation
function compute1(value) {
console.log("hi");
if (eleNum > 0) {
eleNum--;
arr.push(parseInt(document.getElementById("textFieldInp").value || 0, 10)); // see explanation
console.log(arr[arr.length - 1]);
} else {
var sum = 0;
for (var i = 0; i < arr.length; i++) {
sum += arr[i];
}
document.getElementById("output").innerHTML = sum;
}
}
var eleNum=5;
var arr=[];//请参阅说明
函数compute1(值){
控制台日志(“hi”);
if(eleNum>0){
eleNum--;
arr.push(parseInt(document.getElementById(“textFieldInp”).value | | | 0,10));//参见说明
控制台日志(arr[arr.length-1]);
}否则{
var总和=0;
对于(变量i=0;i