Új vásárlás hozzáadása a termékkalkulátorban
Kezdetben tegyük úgy, hogy a gomb megnyomására a táblázathoz új sor kerüljön a vásárlással:
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 = 'töröl';
td.classList.add('remove');
tr.appendChild(td);
table.appendChild(tr);
});
Az általam bemutatott megoldás azonban nyilvánvaló problémákkal küzd a kódismétlést illetően: gyakorlatilag minden cellához ugyanazt a kódot írjuk.
Célszerű lenne egy függvény a táblázat cella létrehozásához. Legyen ez a függvény első paramétere a táblázat sorára mutató hivatkozás, második paramétere - a cella szövege, harmadik pedig - a cella CSS osztályneve:
function createCell(tr, value, name) {
}
Egy ilyen függvény birtokában a fenti kódot a következőképpen írhatnánk át:
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, 'töröl', 'remove');
table.appendChild(tr);
});
Valósítsa meg a leírt createCell függvényt.
Másolja le a kódot az új vásárlás hozzáadásához. Tesztelje az új vásárlás táblázathoz való hozzáadását.
Módosítsa a createCell függvényt úgy,
hogy az a return segítségével
adja vissza a létrehozott táblázat cellát.