I have this table with some dependents information and there is a add and delete button for each row to add/delete additional dependents. When I click “add” button, a new row gets added to the table, but when I click the “delete” button, it deletes the header row first and then on subsequent clicking, it deletes the corresponding row.
Here is what I have:
Javascript code
function deleteRow(row){ var d = row.parentNode.parentNode.rowIndex; document.getElementById('dsTable').deleteRow(d); }
HTML code
<table id = 'dsTable' > <tr> <td> Relationship Type </td> <td> Date of Birth </td> <td> Gender </td> </tr> <tr> <td> Spouse </td> <td> 1980-22-03 </td> <td> female </td> <td> <input type="button" id ="addDep" value="Add" onclick = "add()" </td> <td> <input type="button" id ="deleteDep" value="Delete" onclick = "deleteRow(this)" </td> </tr> <tr> <td> Child </td> <td> 2008-23-06 </td> <td> female </td> <td> <input type="button" id ="addDep" value="Add" onclick = "add()"</td> <td> <input type="button" id ="deleteDep" value="Delete" onclick = "deleteRow(this)" </td> </tr> </table>
Advertisement
Answer
JavaScript with a few modifications:
function deleteRow(btn) { var row = btn.parentNode.parentNode; row.parentNode.removeChild(row); }
And the HTML with a little difference:
<table id="dsTable"> <tbody> <tr> <td>Relationship Type</td> <td>Date of Birth</td> <td>Gender</td> </tr> <tr> <td>Spouse</td> <td>1980-22-03</td> <td>female</td> <td><input type="button" value="Add" onclick="add()"/></td> <td><input type="button" value="Delete" onclick="deleteRow(this)"/></td> </tr> <tr> <td>Child</td> <td>2008-23-06</td> <td>female</td> <td><input type="button" value="Add" onclick="add()"/></td> <td><input type="button" value="Delete" onclick="deleteRow(this)"/></td> </tr> </tbody> </table>