解析html td返回NaN

Parse html td is returning NaN

本文关键字:NaN 返回 td html 解析      更新时间:2024-01-26

我有这段代码,parseFloat将不起作用。它返回NaN。有什么想法吗!value变量返回字符串(这是一个数字),但问题出在解析的变量中:var pv=parseFloat(value);。pv返回NaN。

html表格:

var Er1 = '<div><table Id="AEid" width="85%" border="3"><tbody>' +
'<tr><th><b>AM1</b></th><th><b>AM2</b></th><th><b>Total</b></th></tr>' +
'<tr><td >2</td><td rowspan="1">3</td><td rowspan="1"></td></tr>' +
'<tr><td rowspan="1"></td><td rowspan="1"></td><td rowspan="1"></td></tr>' +
'</tbody></table></div>';
//-------------
$newDiv = $(Er1);
var rows = $newDiv.find('tr')
rows.each(function (idx, item) {
    if (idx > 0) {
        var sum = 0;
        var cols = $(item).children('td')
        for(var i=0;i<cols.length -1;i++){        
        var value = $(cols[i]).text();
        value = value.trim();
        var pv = parseFloat(value);        
        sum = sum + pv; 
        alert("i: " + i +"'n Value: " + value +"'n sum: " + sum + "'n parsedValue: " + pv);                 
    }
}

更改此行:

var cols = $(item).children('td');

var cols = $(item).children('td:not(:empty)');

或者你也可以这样做,

value = value.trim();
if(value == "") value = 0;

这是因为:parseFloat('')=>NaN;

只需修改这行代码:var pv=parseFloat(value);

通过这个:var pv=(value!='')?parseFloat(值):0;

它返回NaN,因为当您解析td时,它返回一个空字符串。在我的fiddle中,你可以看到一个简单的条件语句,它检查是否没有值,并为其赋值0。

if (!value) value = 0;