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作为我的姓名属性。呵呵,谢谢