Javascript text()返回NaN,这是为什么?
使用条件检查 试试这个Javascript text()返回NaN,这是为什么?,javascript,jquery,Javascript,Jquery,使用条件检查 试试这个 <span id="itemtotal_0">16</span> $('span#pricetotal')。文本(函数(){ var=0; 对于(变量i=0;i
<span id="itemtotal_0">16</span>
$('span#pricetotal')。文本(函数(){
var=0;
对于(变量i=0;i<15;i++){
如果($('span#itemtottal_u'+i).text()!=“”){/它工作得很好:
$('span#pricetotal')。文本(函数(){
var=0;
对于(var i=0;i<15;i++){
val+=parseInt($('span#itemtottal_uu'+i).text());
};
返回val;
});
请检查您的itemtotal跨度是否以itemtotal\u 0
开头,而不是itemtotal\u 1
可能是它试图查找span#itemtotal\u 0
,但它不存在。请仔细检查。$('#pricetotal')。text(函数(){
$('span#pricetotal').text(function() {
var val = 0;
for (var i = 0; i < 15; i++) {
val +=parseInt($('span#itemtotal_' + i).text());
};
return val;
});
var=0;
对于(var i=0;i<14;i++){
var值=$.trim($('span#itemtottal_uu'+i).text());
val+=parseInt($.isNumeric(value)?值:0);
};
返回val;
});
注意:
如果您的span包含任何空格
或非数字
数据,这是安全的。在演示中,您会发现其中一个span
有字母a
,显示您的HTML对于这类问题很重要。最有可能的是parseInt($('span#itemtotal.+i).text()
在某个点返回NAN。parseInt无法分析$('span#itemtottal_uu'+i)返回的值。text()作为一个整数。值是什么?你可能在其中有一个货币字符,尽管人们能做的最好的事情是猜测。你能提供一个HTML的示例吗?这种类型的基本调试将是添加console.log($('span#itemtotal u'+i.text());console.log(parseInt($('span#itemtotal'+i.text()))
在循环中,看看它是什么样子。这一个可以做到这一点,但我在以前的代码中确实没有看到任何空格。非常感谢。
$('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;
});
for (var i = 0; i < 15; i++) {
val += parseInt($('span#itemtotal_' + i).text()) || 0;
}
$('span#pricetotal').text(function() {
var val = 0;
for (var i = 0; i < 15; i++) {
val +=parseInt($('span#itemtotal_' + i).text());
};
return val;
});
$('#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;
});