3
$('span#pricetotal').text(function() {
    var val = 0;
    for (var i = 0; i < 15; i++) {
        val += parseInt($('span#itemtotal_' + i).text());
    };
    return val;
});

私はjQuery関数<span>で価格を設定する15倍を持っています。text()上記のコードでは、それらすべての合計を数えて、に入れたいと思いますspan#pricetotal

ただし、何が起こるかというと、加算の代わりに(20+20=40)、要素はを示します2020。上記のコードで使用しましたparseInt-これはを返しますNaN

私は何が間違っているのですか?ありがとうございました。

編集:要素のHTMLは次のようになります:

<span id="itemtotal_0">16</span>
4

3 に答える 3

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;
});

デモ

ノート:

スパンにspaceまたはnon-numericデータが含まれている場合、これは安全です。デモでは、1つspanに文字がありaます。

于 2013-03-19T20:00:52.327 に答える
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;
});

また

for (var i = 0; i < 15; i++) {
    val += parseInt($('span#itemtotal_' + i).text()) || 0;
 }
于 2013-03-19T19:53:39.397 に答える
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_0itemtotalスパンがではなくで始まることを確認してくださいitemtotal_1

見つけようとするかもしれspan#itemtotal_0ませんが、存在しません。もう一度確認してください。

于 2013-03-19T19:56:15.663 に答える