正如另一个答案中提到的,您的直接问题是您要添加字符串,尤其是字符串DOM元素上的value
属性。你会发现任何关于这个问题的问题。
如果您在数组中的元素,寻找和刚刚成为
function add(a, b) { return a + b; }
function sum(array) { return array.reduce(add); }
sum(elements.map(function(elt) { return +elt.value; });
但是,你也可用使用的ID作为识别和转诊来的,穷人的方式的反模式DOM元素。最好只是在创建和添加元素时记住元素本身(如果实际上这是它们被创建的方式)。这样,您不必花费剩余的实时构建ID并将其添加到元素,然后再次构建它们以传递到getElementById
以再次找到它们。通过“记忆元素本身为您创建它们”,我的意思,而不是做这样的事情:
for (i=0; i<n; i++) {
var elt = document.createElement('div');
elt.setAttribute('id', 'total_' + i);
parent.appendChild(elt);
}
或等值jQuery的,这样做
var elements = [];
for (i=0; i<n; i++) {
var elt = document.createElement('div');
elements.push(elt);
parent.appendChild(elt);
}
现在你有数组元素本身,并且您不必每次访问getElementById
时都会用到它们。