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 🙂