⊗jsPrPCPA 25 of 62 menu

Добавяне на нова покупка в калкулатор за продукти

Като начало нека направим така, че при натискане на бутона в таблицата да се добавя нов ред с покупка:

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 = 'изтрий'; td.classList.add('remove'); tr.appendChild(td); table.appendChild(tr); });

Представеното от мен решение обаче има явни проблеми с дублиране на код: всъщност за всяка клетка пишем един и същи код.

Би било уместно да имаме някаква функция за създаване на таблична клетка. Нека тази функция приема първи параметър референция към ред от таблицата, втори параметър - текст на клетката от таблицата, а трети - име на CSS клас на клетката:

function createCell(tr, value, name) { }

Имайки такава функция, бихме могли да пренапишем горния код по следния начин:

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, 'изтрий', 'remove'); table.appendChild(tr); });

Реализирайте описаната от мен функция createCell.

Копирайте моя код за добавяне на нова покупка. Тествайте добавяне на нова покупка в таблицата.

Модифицирайте функцията createCell така, че да връща чрез return създадената таблична клетка.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне