JavaScript да воситасидаги махсулотлар ҳисобкитидаги умумий сумма
Энди жадвал остида xаридларнинг умумий суммаси чиқарилишини таъминлаймиз. Бу ерда нуанслар бор.
Вазиятни ўйлаб кўриш шуни тушунтирадики, сумма нафақат янги xарид қўшилганда, балки ўчирилганда ва таxрирланганда ҳам мослашиши керак.
Мен бу ҳолда recountTotal деб аталувчи
функция яратишни таклиф қилар эдим,
у умумий суммани тўлиқ қайта ҳисоблашни
бажаради. Яъни цикл билан барча xаридлар
бойлаб ўтиб, уларнинг cost устуни мазмунини
йиғиштиради.
Бундай функцияга эга бўлсак, биз уни умумий суммадаги ўзгаришлар кутілган ҳар қандай жойда чақиришимиз мумкин. Албатта, ҳар сафар умумий суммани ҳисоблаш бир оз оптимал эмас. Бирок биз кодни сезиларли даржада соддалаштириб оламиз.
Янги xарид яратилганда таклиф қилинган функциядан фойдаланамиз:
add.addEventListener('click', function() {
let tr = document.createElement('tr');
createCell(tr, name.value, 'name');
createCell(tr, price.value, 'price');
createCell(tr, amount.value, 'amount');
createCell(tr, price.value * amount.value, 'cost');
createCell(tr, 'ўчириш', 'remove');
table.appendChild(tr);
recountTotal(); // умумий суммани қайта ҳисоблаймиз
});
Мана тасвирланган функциянинг тайёрланмаси:
function recountTotal() {
let costs = table.querySelectorAll('.cost');
if (costs) {
// суммани топиш ва уни #total га ёзиш
}
}
Мен тасвирлаган recountTotal функцияни амалга оширинг.