Ich habe ein seltsames Problem mit meiner einfachen to-do-App. Seine Hauptmerkmale sind das Hinzufügen neuer Elemente zu "ul" und das Klicken auf "li", um seine Klasse zu ändern. Nach dem Klicken auf das Element fügt es auch ein "i" mit dem font-awesome-Symbol hinzu und nach einem erneuten Klick sollte es entfernt werden. Es funktioniert gut, wenn ich auf hinzugefügte Elemente von oben nach unten klicke, aber wenn ich von unten nach oben klicke, wird "i" nur vom ersten Element von oben entfernt. Ich kann nicht herausfinden, warum das so ist, also würde ich jede Hilfe zu schätzen wissen. HierJavaScript - seltsamer Fehler entfernt Element nicht
ist Live-Demo, wo man diesen Fehler reproduzieren: https://michalgrochowski.github.io/to-do/
Und hier ist der Code für diese Aktion:
document.getElementById("list").addEventListener("click", function(e) {
if (e.target && e.target.matches("li.item")) {
e.target.className = "itemDone";
var check = document.createElement("i");
check.className = "fa fa-check done";
e.target.appendChild(check);
} else if (e.target && e.target.matches("li.itemDone")) {
e.target.className = "item";
var done = document.getElementsByClassName("done");
var i;
for (i = 0; i < done.length; i++) {
e.target.removeChild(done[i]);
};
};
});
ich getestet habe es in Firefox und Chrome, so ist es Nicht browserbezogen, es muss etwas im Code sein. Ich dachte, vielleicht ist das Problem mit der Schleife innerhalb der Funktion, aber ich weiß nicht, wie man es ändert.
die Konsole sagt der Fehler auf 'e.target.removeChild ist (done [i]);' weil: 'konnte nicht ausgeführt werden‚removeChild‘auf‚Knoten‘: Die Der Knoten, der entfernt werden soll, ist kein untergeordnetes Element dieses Knotens. Überprüfen Sie, ob er mit console.log verwendet wird, um zu sehen, ob Element versucht, die removeChild-Methode aufzurufen. – LordNeo
'e.target.getElementsByClassName (" done ");' –
Konnte auf Chrome Mobile nicht reproduziert werden. Sieht funktional für mich aus. Ich bin in der Lage zu addieren und zu löschen und in allen Bestellungen von oben nach unten und umgekehrt und zufällig –