การเพิ่มรายการซื้อใหม่ในเครื่องคำนวณผลิตภัณฑ์
ก่อนอื่นมาทำให้เมื่อ กดปุ่มในตารางแล้วจะเพิ่มแถวใหม่ พร้อมกับรายการซื้อ:
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