Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jsPrPCPA 25 of 62 menu
◀ ▶

Dodawanie nowego zakupu w kalkulatorze produktów

Na początek zróbmy tak, aby po naciśnięciu przycisku do tabeli dodawany był nowy wiersz z zakupem:

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

Przedstawione przeze mnie rozwiązanie ma jednak wyraźne problemy z duplikacją kodu: faktycznie dla każdej komórki piszemy ten sam kod.

Wskazane byłoby posiadanie funkcji do tworzenia komórki tabeli. Niech ta funkcja jako pierwszy parametr przyjmuje referencję do wiersza tabeli, drugim parametrem - tekst komórki tabeli, a trzecim - nazwę klasy CSS komórki:

function createCell(tr, value, name) { }

Mając taką funkcję, moglibyśmy przepisać powyższy kod w następujący sposób:

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

Zaimplementuj opisaną przeze mnie funkcję createCell.

Skopiuj mój kod do dodawania nowego zakupu. Przetestuj dodawanie nowego zakupu do tabeli.

Zmodyfikuj funkcję createCell tak, aby zwracała przez return utworzoną komórkę tabeli.

← →
↑
Polski▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć