Укупно у калкулатору намирница на ЈаваСкрипт
Хајде сада да направимо да се испод табеле приказује укупан износ куповине. Овде има нијанси.
Ако размислимо о ситуацији, постаће јасно да се износ мора корегисати не само при додавању нове куповине, већ и при брисању и при уређивању.
Предложио бих у том случају да направимо одређену
функцију, назовимо је recountTotal,
која ће обављати потпун прерачун
износа. То ће значити да ће пролазити кроз петљу по
свим куповинама и сабирати садржај њихове
колоне cost.
Имајући такву функцију, моћи ћемо да је позовемо на било ком месту где се предвиђају неке промене укупног износа. Наравно, није баш оптимално сваки пут израчунавати укупан износ. Али ћемо добити знатно поједностављење кода.
Користићемо предвиђену функцију при креирању нове куповине:
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(); // прерачунајмо укупан износ
});
Ево нацрта описанe функције:
function recountTotal() {
let costs = table.querySelectorAll('.cost');
if (costs) {
// пронађимо суму и упишимо је у #total
}
}
Имплементирајте описану функцију recountTotal.