⊗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ć