2017-02-27 55 views
0

我有一排<td> s,我知道行號。加起來<TD>行中的值

<td>的■找IDS類似如下:

TaskHours_0__SaturdayHours TaskHours_0__SundayHours TaskHours_0__MondayHours TaskHours_0__TuesdayHours TaskHours_0__WednesdayHours TaskHours_0__ThursdayHours TaskHours_0__FridayHours

其中基於行數的0的增量。

我正在嘗試寫一些東西來合計每個TD的所有值,當我提供行號時。

我希望能寫出這樣的事:

function rowtotal(rownumber){ 
    var total = 0; 
    total = Number($("#TaskHours_0__SaturdayHours").html()) 
     + Number($("#TaskHours_0__SundayHours").html()) 
     + Number($("#TaskHours_0__MondayHours").html()) 
     + Number($("##TaskHours_0__TuesdayHours").html()) 
     + Number($("#TaskHours_0__WednesdayHours").html()) 
     + Number($("#TaskHours_0__ThursdayHours").html()) 
     + Number($("#TaskHours_0__FridayHours").html()) 
    return total; 
} 

但我無法工作,如何替代「0」參數「ROWNUMBER」

有沒有辦法來取代請0?

+0

'Number($(「#TaskHours _」+ rownumber +「__ SaturdayHours」)'這不是很簡單嗎? –

回答

1

您應該使用Array來存儲星期幾的名稱以減少重複代碼(DRY編碼)和字符串concatenation以創建jQuery選擇器。

一個清潔的版本的代碼:

var weekDays = ['Saturday', 'Sunday', 'Monday', 
       'Tuesday', 'Wednesday', 'Thursday', 'Friday']; 

function rowtotal(rowNumber){ 
    var total = 0; 

    weekDays.forEach(function(day) { 
     total += Number($('#TaskHours_' + rowNumber + '__' + day + 'Hours').html()); 
    }); 

    return total; 
} 

此外,您也可以轉換成一個stringnumber通過與+標誌前綴它,所以不是這個
​​
你可以這樣寫:
+$('#TaskHours_' + rowNumber + '__' + day + 'Hours').html()

3

您可以使用+到:

之間
total = Number($("#TaskHours_"+rownumber+"__SaturdayHours").html()) 

一樣串連它爲其他TDS。