⊗jsPrPCPA 25 of 62 menu

Pridanie nového nákupu v kalkulačke potravín

Na začiatok urobme to, aby sa po kliknutí na tlačidlo do tabuľky pridal nový riadok s nákupom:

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

Uvedené riešenie však má zjavné problémy s duplikáciou kódu: v podstate pre každú bunku píšeme rovnaký kód.

Bolo by vhodné mať nejakú funkciu pre vytvorenie bunky tabuľky. Nech táto funkcia prvým parametrom prijíma odkaz na riadok tabuľky, druhým parametrom - text bunky tabuľky, a tretím - názov CSS triedy bunky:

function createCell(tr, value, name) { }

S takouto funkciou by sme mohli prepísať vyššie uvedený kód nasledovne:

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, 'odstrániť', 'remove'); table.appendChild(tr); });

Implementujte opísanú funkciu createCell.

Skopírujte môj kód pre pridanie nového nákupu. Otestujte pridanie nového nákupu do tabuľky.

Upravte funkciu createCell tak, aby vracala cez return vytvorenú bunku tabuľky.

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
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť