⊗jsPrPCTS 26 of 62 menu

Tuotteiden laskimen kokonaissumma JavaScriptillä

Tehdään nyt niin, että taulukon alle tulostetaan ostosten kokonaissumma. Tässä on hienouksia.

Jos mietitään tilannetta, käy selväksi, että summan tulisi muuttua paitsi uuden ostoksen lisäyksen yhteydessä, myös poistettaessa ja muokattaessa.

Ehdotan tällöin, että teemme jonkinlaisen funktion, kutsukaamme sitä recountTotal:ksi, joka suorittaa summan täyden uudelleenlaskennan. Se siis käy läpi kaikki ostokset silmukassa ja laskee yhteen niiden cost -sarakkeen sisällön.

Kun meillä on tällainen funktio, voimme kutsua sitä missä tahansa kohdassa, jossa summaan voi tulla muutoksia. Tietenkin on hieman optimoimatonta laskea kokonaissumma uudelleen joka kerta. Mutta saamme siitä huomattavan koodin yksinkertaistamisen.

Käytetään ehdotettua funktiota uuden ostoksen luomisen yhteydessä:

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, 'poista', 'remove'); table.appendChild(tr); recountTotal(); // lasketaan kokonaissumma uudelleen });

Tässä on kuvatun funktion runko:

function recountTotal() { let costs = table.querySelectorAll('.cost'); if (costs) { // etsimme summan ja kirjoitamme sen #total -elementtiin } }

Toteuta kuvaamani funktio recountTotal.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää