Я хочу сделать некоторую базовую математику в моей динамической HTML-таблице, которая использует данные JSON, загруженные через ajax.
Когда я пытаюсь разобрать Float, код работает, однако он удаляет десятичные разряды из моих чисел. Я хочу, чтобы это было приложение для счета в ресторане, поэтому важны десятичные дроби. parseFloat.toFixed(2)
тоже не работает.
Кроме того, я хочу иметь возможность выбрать только несколько строк, чтобы сложение было выполнено в качестве промежуточной суммы. Я могу выбрать строки по щелчку, чтобы выделить их. После выделения я мог бы использовать оператор if
, чтобы увидеть, какие строки имеют переключаемый класс «Выделенный», а затем выполнить вычисление оттуда. Кто-нибудь знает более эффективный способ сделать это?
const data = [
{pk: 1, Description: "Pizza", Price: "50.00"},
{pk: 2, Description: "Hamburger", Price: "60.00"},
{pk: 3, Description: "Coca Cola", Price: "20.00"},
{pk: 4, Description: "Fanta", Price: "20.00"},
{pk: 5, Description: "Corona", Price: "30.00"},
{pk: 6, Description: "Steak", Price: "100.00"}
]
function showTable(data) {
var tbl = document.getElementById("food_table")
var table_data = '';
var total = 0.00;
for (i = 0; i < data.length; i++) {
//To find the total value of the bill!
total = parseFloat(data[i].Price) + total;
//To create the rows from JSON Object
table_data += '<tr id="contentRow">';
table_data += '<td>' + data[i].pk + '</td>';
table_data += '<td>' + data[i].Description + '</td>';
table_data += '<td>' + 'R' + data[i].Price + '</td>';
table_data += '<td><input class="double" type="checkbox" /></td>';
table_data += '</tr>';
}
tbl.insertAdjacentHTML('afterbegin', table_data);
tbl.insertAdjacentHTML('beforeend', '<tr id="contentRow">Total Bill = R' + total + '</tr>');
}
$("#food_table").on('click', '#contentRow', function() {
$(this).toggleClass("highlight");
});
showTable(data);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="table " id="food_table">
<thead>
<tr>
<th>pk</th>
<th>Description</th>
<th>Price</th>
<th></th>
</tr>
</thead>
</table>