$('span#pricetotal').text(function() {
var val = 0;
for (var i = 0; i < 15; i++) {
val += parseInt($('span#itemtotal_' + i).text());
};
return val;
});
我有15x <span>
我用jQuery text()
函数定价。在上面的代码中,我想计算它们的总和并将其放入span#pricetotal
。
但是,该元素显示(20+20=40)
,而不是添加2020
。在上面的代码中,我使用了parseInt
- 这会返回NaN
。
我做错了什么?谢谢。
编辑:元素的HTML如下所示:
<span id="itemtotal_0">16</span>
答案 0 :(得分:2)
$('#pricetotal').text(function() {
var val = 0;
for (var i = 0; i < 14; i++) {
var value = $.trim($('span#itemtotal_' + i).text());
val +=parseInt( $.isNumeric(value) ? value : 0);
};
return val;
});
的 DEMO 强> 的
注意:强>
如果您的范围包含任何space
或non-numeric
数据,这是安全的。在演示中,您会发现一个span
有一个字母a
。
答案 1 :(得分:0)
使用条件检查..
试试这个
$('span#pricetotal').text(function() {
var val = 0;
for (var i = 0; i < 15; i++) {
if($('span#itemtotal_' + i).text() != ""){ // <-- check if not empty since empty gives Nan when used pareseInt
val += parseInt($('span#itemtotal_' + i).text());
}
};
return val;
});
OR
for (var i = 0; i < 15; i++) {
val += parseInt($('span#itemtotal_' + i).text()) || 0;
}
答案 2 :(得分:0)
完美无缺: http://jsfiddle.net/jDnVy/5/
$('span#pricetotal').text(function() {
var val = 0;
for (var i = 0; i < 15; i++) {
val +=parseInt($('span#itemtotal_' + i).text());
};
return val;
});
请检查您的商品总计跨度是否以itemtotal_0
开头,而不是itemtotal_1
可能会尝试查找span#itemtotal_0
,但它不存在。请仔细检查。