Supprimer la dernière ligne dans le tableau

J'ai eu une question simple, je veux supprimer la dernière rangée dans une table, j'ai copié une fonction qui supprime la vérification mais:

function deleterow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; for(var i=1; i<rowCount; i++) { var row = table.rows[i]; var chkbox = row.cells[0].childNodes[0]; if(null != chkbox && true == chkbox.checked) { table.deleteRow(row); rowCount--; i--; } } }catch(e) { alert(e); } } 

Comment puis-je le changer, de sorte qu'il ne supprime que le dernier, pour chaque fois que j'utilise cette fonction? Merci à tous pour l'aide! j'apprécie vraiment cela!

La fonction deleteRow prend un index, passe le count - 1 .

http://jsfiddle.net/jbabey/HEDNZ/

 function deleterow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; table.deleteRow(rowCount -1); } 
 function deleterow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.rows[rowCount - 1 ]; table.deleteRow(row); } 

Je n'ai pas testé cela, mais je pense que quelque chose comme ça devrait fonctionner:

 function deleterow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; var lastRow = table.rows[rowCount]; table.deleteRow(lastRow); }catch(e) { alert(e); } } 

Je ne savais pas si RowCount a une signification particulière pour vous.

Itérant avec while – vous permet de commencer par le retour en premier. Il suffit de vous interrompre lorsque vous en supprimez un.

 function deleterow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; var i = rowCount; while(i--) { var row = table.rows[i]; var chkbox = row.cells[0].childNodes[0]; if(null != chkbox && true == chkbox.checked) { table.deleteRow(row); rowCount--; break; } } }catch(e) { alert(e); } } 

Utilisez table.deleteRow (i);

au lieu

Table.deleteRow (row); J'espère que cela fonctionne 🙂