I run the program and add student to the list, then I delete this studentlist row. Then When I add new student the studentlist show me both deleted row and new inserted row? How can I solve this?
function renderStudentList() {
tableBody.innerHTML = "";
studentList.map((student) => {
const studentRow = `
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.surname}</td>
<td>${student.birthday}</td>
<td>${student.age}</td>
<td>${student.gender === "M" ? "Male" : "Female"}</td>
<td>
<img id="delete" src="./icons/delete.svg" alt="delete" onclick="deleteRow(this)">
<img id="edit" src="./icons/edit.svg" alt="edit" >
</td>
</tr>
`;
tableBody.insertAdjacentHTML("beforeend", studentRow);
});
}
addStudentBtn.addEventListener("click", (e) => {
e.preventDefault();
const newStudent = {
id: generateId(),
name: document.getElementById("name").value,
surname: document.getElementById("surname").value,
birthday: document.getElementById("birthday").value,
age: document.getElementById("age").value,
gender: document.getElementById("genderM").checked ? "M" : "F",
};
if (isDataValid(newStudent)) {
document.getElementById("student-form").reset();
studentList.push(newStudent);
renderStudentList();
} else {
console.log("PLEASE FILL THE DATA");
}
});
function deleteRow(r) {
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("table-body").deleteRow(i - 1);
}