2016-06-15 5 views
0

私は、htmlテーブルのいくつかの計算を行う小計関数を持っています(クラスを割り当てた列を合計します)。私はそれに引数を渡すことができるようにそれを修正し、最初の関数呼び出しでは必要に応じて動作します。私は再びそれを呼び出すと、セルを作成してクラスを割り当てますが、NaNを返すので、数学または明らかに何かが間違っています。ここに私のJSFiddleと私の機能は以下です。どんな助けもありがとう!jquery関数の計算が正常に機能していない2番目の呼び出し

//v is parent,z is child element,w is which child column....ex: 0 or 1, y is first run or not, z is class name you want assigned 
function subtotals(v, w, x, y, z) { 
    $(v).each(function (index, element) { 
     var subTotalAmt = 0; 
     var numRows = parseInt($(this).attr("rowspan")); 
     var firstRow = $(this).parent(); 
     var lastRow = firstRow.nextAll('tr').slice(numRows - 2, numRows - 1); 
     var currentRow = firstRow; 
     for (i = 0; i < numRows; i++) { 
      subTotalAmt += parseInt($(currentRow.children(w)[x]).text()); 
      currentRow = currentRow.next("tr"); 
     } 
     if(y == 'yes'){ 
     lastRow.after('<tr><td class="sub0">Sub Total</td><td class="' + z + '">' + subTotalAmt + '</td></tr>'); 
     $(this).attr('rowspan', numRows + 1); 
     } 
     else { 
     lastRow.append('<td class="' + z + '">' + subTotalAmt + '</td>'); 
     }   
    }); 
} 
$(function doSubtotals() { 
    subtotals('.parent','.child','1','yes','sub1'); 
    subtotals('.parent','.child','2','no','sub2'); 
}); 

答えて

0

あなた<td>の一部ではなく、有効な番号​​の(「未ナンバー」の略)の計算が失敗し、NaNを入れている場合、有効な数値を含まれていません。 これを修正するには、この条件をコードに追加してください:

for (i = 0; i < numRows; i++) { 
     var tdValue=0; 
     if(!isNaN(parseInt($(currentRow.children(w)[x]).text()))) 
     { 
      tdValue=parseInt($(currentRow.children(w)[x]).text()); 
     } 
     subTotalAmt += tdValue; 
     currentRow = currentRow.next("tr"); 
    } 
+0

ありがとうございました! – khemikal

関連する問題