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 に答える