პროდუქტების კალკულატორში ახალი შესყიდვის დამატება
დასაწყისისთვის მოდით გავაკეთოთ ისე, რომ ღილაკზე დაჭერისას ცხრილს დაემატოს ახალი რიგი შესყიდვით:
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-ის მეშვეობით დააბრუნებდეს
შექმნილ ცხრილის უჯრას.