⊗jsPrPCPA 25 of 62 menu

Dodajanje novega nakupa v kalkulatorju produktov

Za začetek naredimo, da se ob kliku na gumb v tabelo doda nova vrstica z nakupom:

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

Priložena rešitev pa ima očitne težave s podvajanjem kode: dejansko za vsako celico pišemo isto kodo.

Primerno bi bilo imeti neko funkcijo za ustvarjanje tabele celice. Naj ta funkcija prvi parameter sprejme referenco na vrstico tabele, drugi parameter - besedilo celice tabele, tretji pa - ime CSS razreda celice:

function createCell(tr, value, name) { }

S takšno funkcijo bi lahko prepisali zgoraj navedeno kodo na naslednji način:

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

Implementirajte opisano funkcijo createCell.

Kopirajte mojo kodo za dodajanje novega nakupa. Testirajte dodajanje novega nakupa v tabelo.

Modificirajte funkcijo createCell tako, da preko return vrne ustvarjeno celico tabele.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni