Javascript 具有某些类的元素的getAttribute不';行不通
我有一些特定类的输入字段。它们都有一个数据属性,比如带有整数值的Javascript 具有某些类的元素的getAttribute不';行不通,javascript,class,attributes,input-field,getattribute,Javascript,Class,Attributes,Input Field,Getattribute,我有一些特定类的输入字段。它们都有一个数据属性,比如带有整数值的datasomedata。我必须计算这些数据属性的总和。我尝试将getAttribute与getElementsByClassName结合使用,但不起作用 我正在使用以下代码: var fields=document.getElementsByClassName('datainput'); var结果=0; for(字段中的变量i){ 结果+=字段[i].getAttribute('data-somedata'); } docu
datasomedata
。我必须计算这些数据属性的总和。我尝试将getAttribute
与getElementsByClassName
结合使用,但不起作用
我正在使用以下代码:
var fields=document.getElementsByClassName('datainput');
var结果=0;
for(字段中的变量i){
结果+=字段[i].getAttribute('data-somedata');
}
document.getElementById('result')。innerHTML='总和为:'+result;
在(firefox)控制台中,我得到:
TypeError:字段[i]。getAttribute
不是函数
为什么会这样?我怎样才能修好它
除非绝对必要,否则我不想使用jQuery(我不认为是这样)。请检查:
var fields = document.getElementsByClassName('datainput');
var result = 0;
for (var i = 0; i < fields.length; i++) {
result += parseInt(fields[i].getAttribute('data-somedata'));
}
document.getElementById('result').innerHTML = 'The sum is: ' + result;
var fields=document.getElementsByClassName('datainput');
var结果=0;
对于(var i=0;i
不要使用for in语句,而是使用简单的for语句,如中所示:
var fields = document.getElementsByClassName('datainput');
var result = 0;
for (var i = 0; i < fields.length; i ++) {
var val = parseInt(fields[i].getAttribute('data-somedata'), 10);
result += val;
}
document.getElementById('result').innerHTML = 'The sum is: ' + result;
HTMLCollection
的前n=fields.length属性是其项的索引。至于原因,for-in循环将遍历对象的所有属性,包括函数(和继承属性)。@rakhee 8+15!=0815-见c.P.u1的答案,这是有效的;)对不起,我没有更新它…检查上面的小提琴。。。
var c = 0;
for(var i in fields) {
if(c == fields.length) break;
c ++;
console.log(fields[i].getAttribute('data-somedata'));
}