Ich versuche, die Gesamtsumme neu berechnen, nachdem ich die Zeile löschen, aber es wird nicht gelöscht. Ich möchte einen Weg finden, die letzte Zeile und die letzte Zelle zu referenzieren und die neue Gesamtsumme (aus dem Eingabefeld) zu verwenden, um die Gesamtsumme in der Quittung durch Javascript zu ersetzen. Ich würde mich über Vorschläge freuen.Referenzieren der letzten Zeile, letzte Zelle in der Tabelle mit Javascript
https://jsfiddle.net/x54tbmt5/1/
Ich würde meinen Code platzieren, aber Stack Fluss sagt zu viel Code, also werde ich mein Bestes tun, hier den Hauptcode setzen.
JS:
// adds grand total row
function addGrandTRow() {
var tableRef = $("receiptOrders");
var newRow = tableRef.insertRow(-1); // insert new row at the end
var newCell = newRow.insertCell(0); // insert new cell at the end
// Append a text node to the cell
var newText = document.createTextNode("Grand Total");
newCell.appendChild(newText);
var secondCell = newRow.insertCell(-1);
var emptyText= document.createTextNode("");
secondCell.appendChild(emptyText);
secondCell.colSpan = "8";
secondCell.style.backgroundColor = "#eee";
var nthCell = newRow.insertCell(-1);
var grandTotalValue = document.createTextNode($("grandTotal").value);
nthCell.appendChild(grandTotalValue);
grandTotalHolder.push(grandTotalValue); // adds order
console.log("Number of Rows in table: " + tableRef.rows.length);
}
function deleteRow() {
// converts number into integer
var itemNumber = parseInt(prompt ("enter item number to delete"));
if (itemNumber == NaN || itemNumber < 1) {
prompt ("enter item number");
} else {
var table = $("receiptOrders");
var rowCount = table.rows.length;
table.deleteRow(itemNumber);
for(var i=1; i < rowCount-1; i++) {
table.rows[i].cells[0].innerHTML = i; // renumbers the list after delete row
rowCount--; // after delete row, need to decrease number of rows
}
}
// if all the rows are deleted except header and grand total, button is
disabled
if (rowCount == 2) {
$("deleteRowbtn").disabled = true; // button is disabled
}
// grand total input field
// item number - 1: calculates the correct index when row is deleted.
var newGrandTotal = parseFloat($("grandTotal").value)
- orderTotalHolder[itemNumber-1];
// converts to string, 2 numbers after decimal
$("grandTotal").value = newGrandTotal.toFixed(2);
// recalculate total
var tableRef = $("receiptOrders");
var rows = tableRef.getElementsByTagName('tr');
var cells = tableRef.getElementsByTagName('td');
var lastRow = rows[rows.length];
var lastCell = rows[rows.length];
lastRow.lastCell.innerHTML = $("grandTotal").value;
}
Vielen Dank, ich schätze Ihre Hilfe sehr. :) –
Ich habe noch nie davon gehört. –