У меня есть функция, которая суммирует столбец данных в таблице HTML. Это делает так превосходно, только я хотел бы иметь его, поместил запятые там, которые необходимы для разделения тысяч. Первоначально, Вы отметите, в добавляемых числах существуют запятые. Так, чтобы функция добавила их, они удалены. Как я добавляю запятые назад там?
<script type="text/javascript">
function sumOfColumns(tableID, columnIndex, hasHeader) {
var tot = 0;
$("#" + tableID + " tr" + (hasHeader ? ":gt(0)" : ""))
.children("td:nth-child(" + columnIndex + ")")
.each(function() {
tot += parseInt($(this).html().replace(',', ''));
});
return "Total Pounds Entered : " + tot;
}
</script>
$ (this) .html (). Replace (',', '')
не должен фактически изменять страницу. Вы уверены, что на странице удаляются запятые?
Если да, то эта функция addCommas должна помочь.
function addCommas(nStr) {
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
Это добавит разделители тысяч, сохраняя при этом десятичную часть данного числа:
function format(n, sep, decimals) {
sep = sep || "."; // Default to period as decimal separator
decimals = decimals || 2; // Default to 2 decimals
return n.toLocaleString().split(sep)[0]
+ sep
+ n.toFixed(decimals).split(sep)[1];
}
format(4567354.677623); // 4,567,354.68
Вы также можете проверить десятичный разделитель локали с помощью:
var sep = (0).toFixed(1)[1];