Javascript 总和动态字段名称中始终显示零值

Javascript 总和动态字段名称中始终显示零值,javascript,Javascript,我有几个动态生成的字段,如下所示: cols += '<td><input type="text" id="total" name="field[total][' + counter + ']" placeholder="Total" onchange="findTotal()"></td>'; cols+=''; 这是我的JavaScript: function findTotal(){ var sum = 0; var cost = d

我有几个动态生成的字段,如下所示:

cols += '<td><input type="text" id="total" name="field[total][' + counter + ']" placeholder="Total" onchange="findTotal()"></td>';
cols+='';
这是我的JavaScript:

function findTotal(){
    var sum = 0;
    var cost = document.getElementsByName('field[total][]');
    for (var i = 0; i < cost.length; i++)
    {
        sum += parseFloat(cost[total][i].value);
    }
    document.getElementById('totalsemua').value = sum;
}
函数findTotal(){
var总和=0;
var cost=document.getElementsByName('field[total][]);
对于(变量i=0;i

我正在尝试计算总和,但值总是显示为0,我不明白,请帮助我。

好吧,您正在尝试这样做

sum += parseFloat(cost[total][i].value);
但是什么是成本[总][i]。价值

var cost = document.getElementsByName('field[total][]');
是元素列表(节点列表),因此值应在
成本[i]内。值
,而不是
成本[total][i]。值

您还错误地使用了
document.getElementsByName

var cost = document.getElementsByName('field[total][]');
但是参数应该是一个元素名(而不是具有该值的“name”属性的元素)。请看区别:

<someElement>...</someElement><!-- element with name someElement -->
<div name="someName">...</div><!-- element with name div and with attribute "name" -->
。。。
...

该方法旨在查找
内容:
document.getElementsByName('someElement')
。使用带有适当选择器的
document.querySelectorAll
document.getElementsByName('input')
并对其进行适当筛选。

是否检查了成本变量中的内容?@codemanic抱歉,我使用了错误的方法Hehecost var cost field[total][]是我输入字段的名称(例如:field[total][0]),我想通过循环spesific字段来递增,然后我尝试cost[i]。值仍然显示0@NewbsWantGeeks我编辑这篇文章是为了进一步澄清:每个元素都有一个名称(比如
div
img
),有些元素可能有一个
name
属性。
document.getElementsByName
用于元素名称,而不是
name
attritubes.ohh我理解在我的情况下,我想选择名称不是元素名称的元素谢谢您的帮助help@NewbsWantGeeks事实上您以一种相当不方便的方式使用属性:您使用一些原始语法将其复杂化,以便在属性值内设置一个值。我建议使用类似于
index=“”+counter+”
的方法。如果您确实需要
名称
,您可以另外生成它。好的,我将尝试使用queryselector all作为我的姓名属性。呵呵,谢谢