Shtimi i një blerjeje të re në kalkulatorin e produkteve
Për fillim, le ta bëjmë që me klikim në buton të shtohet në tabelë një rresht i ri me blerje:
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 = 'fshij';
td.classList.add('remove');
tr.appendChild(td);
table.appendChild(tr);
});
Zgjidhja që dhashë, megjithatë, ka probleme të dukshme me dyfishimin e kodit: në fakt për çdo qelizë ne shkruajmë të njëjtin kod.
Do të ishte e përshtatshme të kishim një funksion për krijimin e qelizës së tabelës. Le të marrë ky funksion si parametër të parë një referencë për rreshtin e tabelës, si parametër të dytë - tekstin e qelizës së tabelës, dhe si të tretë - emrin e klasës CSS të qelizës:
function createCell(tr, value, name) {
}
Duke pasur një funksion të tillë do të mund ta rishkruanim kodin e mësipërm në këtë mënyrë:
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, 'fshij', 'remove');
table.appendChild(tr);
});
Implementoni funksionin createCell që përshkrova.
Kopjoni kodin tim për shtimin e blerjes së re. Testoni shtimin e blerjes së re në tabelë.
Modifikoni funksionin createCell në mënyrë
që ai të kthejë përmes return
qelizën e krijuar të tabelës.