1

我有这个脚本

$('table#preview td.price').each(function(){
var price = parseInt($(this).html());
var total;
if(price == ''){
price = 0;
}
total += price;
alert(total);
});

它所做的是获取具有类价格的列,然后据说将其全部加起来。

但是,我从这段代码中得到的只是 NaN。我不明白代码有什么问题。

请注意脚本if(price == '')。我这样做是因为最初表格中没有内容。

编辑:这里是html

    <table>
    <tr>
    <th>Name</th>
    <th>Price</th>
    </tr>
    <tr>
    <td>pen</td>
    <td class="price>6</td>
    <td>paper</td>
    <td class="price>8</td>    
    </tr>
    </table>
4

1 回答 1

7

尝试使用.text()方法而不是.html()方法,它应该有望帮助摆脱 NaN 错误。您需要在total每次迭代的范围之外声明它,这样它就不会每次都被重置。尝试一下,我已经稍微简化了它,还包括对数字的检查price

var total = 0;
$('table#preview td.price').each(function()
{
    var price = parseInt($(this).text());
    if (!isNaN(price))
    {
        total += price;
    }
});

alert('The total is: ' + total);

更新

这是一个jsFiddle。NB.html()也应该工作。

于 2012-05-22T12:54:32.270 回答