⊗jsPrPCPA 25 of 62 menu

Přidání nového nákupu v kalkulačce produktů

Pro začátek udělejme, aby se po kliknutí na tlačítko do tabulky přidal nový řádek s nákupem:

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

Uvedené řešení však má zjevné problémy s duplikací kódu: fakticky pro každou buňku píšeme stejný kód.

Bylo by vhodné mít nějakou funkci pro vytvoření buňky tabulky. Nechť tato funkce přijímá jako první parametr odkaz na řádek tabulky, druhým parametrem - text buňky tabulky, a třetím - název CSS třídy buňky:

function createCell(tr, value, name) { }

S takovou funkcí bychom mohli přepsat uvedený kód následujícím způsobem:

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

Implementujte popsanou funkci createCell.

Zkopírujte můj kód pro přidání nového nákupu. Otestujte přidání nového nákupu do tabulky.

Upravte funkci createCell tak, aby vracela pomocí return vytvořenou buňku tabulky.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout