javascript(数学)添加数组

javascript(数学)添加数组,javascript,arrays,getelementbyid,Javascript,Arrays,Getelementbyid,我有两个javascript文本框 <input type="text" name="test" value="300" /> <input type="text" name="test" value="500" /> 这将考虑所有输入元素(如果您有许多元素,则很有用)。按类型过滤它们,并在循环中获取它们的值: var inputs = document.getElementsByTagName("input"); var total = 0; for (var i

我有两个javascript文本框

<input type="text" name="test" value="300" />
<input type="text" name="test" value="500" />

这将考虑所有
输入
元素(如果您有许多元素,则很有用)。按
类型过滤它们,并在循环中获取它们的值:

var inputs = document.getElementsByTagName("input");
var total = 0;

for (var i = 0; i < inputs.length; i++){
    if (inputs[i].type = "text"){
        total += parseInt(inputs[i].value, 10);
    }
}

alert(total);
var inputs=document.getElementsByTagName(“输入”);
var合计=0;
对于(变量i=0;i
这将考虑所有
输入
元素(如果您有很多元素,则很有用)。按
类型过滤它们,并在循环中获取它们的值:

var inputs = document.getElementsByTagName("input");
var total = 0;

for (var i = 0; i < inputs.length; i++){
    if (inputs[i].type = "text"){
        total += parseInt(inputs[i].value, 10);
    }
}

alert(total);
var inputs=document.getElementsByTagName(“输入”);
var合计=0;
对于(变量i=0;i
注意没有其他带有
id=“price1”
id=“price2”


注意没有其他带有
id=“price1”
id=“price2”

的标记,原因如下。首先,顾名思义,
getElementById
根据
id
属性的值获取元素。您没有为
输入
元素指定
id
属性,因此这不起作用

其次,
document.getElementById('someId')
返回一个元素,但您需要该值。您可以使用
属性获取它:

var price1 = parseInt(document.getElementById("test1").value, 10);
var price2 = parseInt(document.getElementById("test2").value, 10);
alert(price1 + price2);
这将适用于以下HTML:

<input type="text" name="test" id="test1" value="300" />
<input type="text" name="test" id="test2" value="500" />


请注意使用
parseInt
value
属性返回一个字符串,因此我们使用
parseInt
尝试将其解析为一个数字。如果不使用它,
price1+price2
将简单地连接字符串。

由于以下几个原因,您编写的内容将无法工作。首先,顾名思义,
getElementById
根据
id
属性的值获取元素。您没有为
输入
元素指定
id
属性,因此这不起作用

其次,
document.getElementById('someId')
返回一个元素,但您需要该值。您可以使用
属性获取它:

var price1 = parseInt(document.getElementById("test1").value, 10);
var price2 = parseInt(document.getElementById("test2").value, 10);
alert(price1 + price2);
这将适用于以下HTML:

<input type="text" name="test" id="test1" value="300" />
<input type="text" name="test" id="test2" value="500" />


请注意使用
parseInt
value
属性返回一个字符串,因此我们使用
parseInt
尝试将其解析为一个数字。如果不使用它,
price1+price2
将简单地连接字符串。

我想总结一下数组。我可以使用getElementByName吗?我将从数据库中提取,所以我不知道将有多少记录。我只知道每个人都有自己的价格。我怎样才能使它汇总数据库中的数组?啊,对不起,我应该更仔细地阅读你的问题。在这种情况下,请参阅@Igor Dymov的答案,它不使用
getElementById
,因此意味着您不必更改HTML。我想总结一下数组。我可以使用getElementByName吗?我将从数据库中提取,所以我不知道将有多少记录。我只知道每个人都有自己的价格。我怎样才能使它汇总数据库中的数组?啊,对不起,我应该更仔细地阅读你的问题。在这种情况下,请参阅@Igor Dymov的答案,它不使用
getElementById
,因此意味着您不必更改HTML。谢谢,它工作得很好。我唯一需要更改的是将document.getElementByTagName更改为document.getElementbyName。这两种方式都有效,但我在页面上有其他文本框,其中没有数字。非常感谢你!如果aik
getElementsByTagName
在IE中不起作用,我宁愿使用
getElementsByTagName
并在loopoh ok中按名称过滤。你知道我怎么做才能得到一个名为“priceList”的最终文本框,在这个文本框中,所有的价格都会从数组中显示出来吗?基本上,它会做的是把两个文本框的值放在一个文本框中,用一个逗号分隔,输入所需的id并分配所需的值。谢谢,它工作得很好。我唯一需要更改的是将document.getElementByTagName更改为document.getElementbyName。这两种方式都有效,但我在页面上有其他文本框,其中没有数字。非常感谢你!如果aik
getElementsByTagName
在IE中不起作用,我宁愿使用
getElementsByTagName
并在loopoh ok中按名称过滤。你知道我怎么做才能得到一个名为“priceList”的最终文本框,在这个文本框中,所有的价格都会从数组中显示出来吗?基本上,它要做的是将两个文本框的值放入一个文本框中,用一个逗号分隔,输入所需的id并分配所需的值
var price1 = parseInt(document.getElementById("test1").value, 10);
var price2 = parseInt(document.getElementById("test2").value, 10);
alert(price1 + price2);
<input type="text" name="test" id="test1" value="300" />
<input type="text" name="test" id="test2" value="500" />