2016-12-12 36 views
0

我有一個腳本,它將表格中的所有內容相加,並添加一個新的行。從表格和總數到5的倍數

現在我有這樣的代碼:

var tds = document.getElementById('count2').getElementsByTagName('td'); 
var sum = 0; 
for(var i = 0; i < tds.length; i ++) { 
    if(tds[i].className == 'count-me') { 
     sum += isNaN(tds[i].innerHTML) ? 0 : parseInt(tds[i].innerHTML); 
    } 
} 

function roundUpToAny($n,$x=5) { 
    return (ceil($n)%$x === 0) ? ceil($n) : round(($n+$x/2)/$x)*$x; 
} 

document.getElementById('count2').innerHTML += '<tr class="sum"><td colspan="2" style="background:#fff;">Wypłacono, podpis:</td><td colspan="4" style="background:#fff;"></td><td>Łącznie</td><td class="count2">' + sum + '</td></tr>'; 

我如何結合這'+ sum +'與功能roundUpToAny()?我試過將'+ sum +'更改爲'roundUpToAny(sum)',但這不起作用。

+0

你試過''+ roundUpToAny(sum)+'' –

+0

是的,這行表格不會出現 – Dawid

+0

您是否在控制檯收到任何錯誤? – 31piy

回答

0

該問題出現在下面的函數中。

function roundUpToAny($n,$x=5) { 
    return (ceil($n)%$x === 0) ? ceil($n) : round(($n+$x/2)/$x)*$x; 
} 

你調用數學對象的功能,但沒有數學對象,您需要更改ceilroundMath.ceilMath.round

函數應該在這個樣子的

function roundUpToAny($n,$x=5) { 
 
    return (Math.ceil($n)%$x === 0) ? Math.ceil($n) : Math.round(($n+$x/2)/$x)*$x; 
 
} 
 

 
console.log(roundUpToAny(12)); 
 
console.log(roundUpToAny(9)); 
 
console.log(roundUpToAny(10));

+0

它很好用! – Dawid

0

您可以改爲使用Math.round()

使用.toFixed()函數,您可以指定在逗號後需要多少個值。 例如0.23.toFixed(1) === "0.2",結果是一個字符串,要小心。