⊗jsPrPCPA 25 of 62 menu

Toevoegen van een nieuwe aankoop in de productencalculator

Laten we eerst ervoor zorgen dat er bij het klikken op de knop een nieuwe rij met een aankoop aan de tabel wordt toegevoegd:

add.addEventListener('click', function() { let tr = document.createElement('tr'); let td; td = document.createElement('td'); td.textContent = name.value; td.classList.add('name'); tr.appendChild(td); td = document.createElement('td'); td.textContent = price.value; td.classList.add('price'); tr.appendChild(td); td = document.createElement('td'); td.textContent = amount.value; td.classList.add('amount'); tr.appendChild(td); td = document.createElement('td'); td.textContent = price.value * amount.value; td.classList.add('cost'); tr.appendChild(td); td = document.createElement('td'); td.textContent = 'verwijderen'; td.classList.add('remove'); tr.appendChild(td); table.appendChild(tr); });

Mijn voorgestelde oplossing heeft echter duidelijke problemen met code-duplicatie: in feite schrijven we voor elke cel dezelfde code.

Het zou gepast zijn om een functie te hebben voor het maken van een tabelcel. Laat deze functie als eerste parameter een verwijzing naar de tabelrij ontvangen, als tweede parameter - de tekst van de tabelcel, en als derde - de naam van de CSS-klasse van de cel:

function createCell(tr, value, name) { }

Met zo'n functie zouden we de bovenstaande code als volgt kunnen herschrijven:

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, 'verwijderen', 'remove'); table.appendChild(tr); });

Implementeer de door mij beschreven functie createCell.

Kopieer mijn code voor het toevoegen van een nieuwe aankoop. Test het toevoegen van een nieuwe aankoop aan de tabel.

Pas de functie createCell zo aan, dat deze via return de gemaakte tabelcel teruggeeft.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren