⊗jsPrPCPA 25 of 62 menu

Legge til nytt kjøp i matvarekalkulator

Til å begynne med, la oss gjøre det slik at når du klikker på knappen, legges en ny rad til i tabellen med et kjøp:

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 = 'slett'; td.classList.add('remove'); tr.appendChild(td); table.appendChild(tr); });

Løsningen jeg presenterte har imidlertid tydelige problemer med kodeduplisering: faktisk skriver vi den samme koden for hver celle.

Det ville være hensiktsmessig å ha en funksjon for å opprette en tabellcelle. La denne funksjonen ta en referanse til tabellraden som første parameter, teksten i tabellcellen som andre parameter, og navnet på CSS-klassen til cellen som tredje:

function createCell(tr, value, name) { }

Med en slik funksjon kunne vi omskrevet koden ovenfor som følger:

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

Implementer funksjonen createCell som jeg beskrev.

Kopier koden min for å legge til et nytt kjøp. Test å legge til et nytt kjøp i tabellen.

Modifiser funksjonen createCell slik at den returnerer den opprettede tabellcellen via return.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis