Ich bin ziemlich neu zu Javascript und Arbeiten über Javascript & jquery Buch. Um mich selbst zu testen, versuche ich eine Todo-Liste Javascript zu erstellen. Mit Hilfe des Buches konnte ich die Funktion "Aus Liste entfernen" erstellen. Ich kann jedoch nicht scheinen, die addToList Funktion zu funktionieren und ich weiß nicht warum. Einsicht wird sehr geschätzt.Aufbau einer Todo-Liste in Javascript
var item, list, feedback;
item = document.getElementById("item");
list = document.getElementById("list");
feedback = document.getElementById("feedback");
function addToList() {
console.log("I am in");
var newElement = document.createElement("li");
console.log(item.value);
newItem = item.value
newElement.innerHTML = newItem;
list.appendChild('<a>newElement</a>');
// el.innerHTML = item.value;
feedback.innerHTML = "Item added.";
console.log("working");
}
function removeFromList(e) {
var target, elParent, elGrandparent;
target = e.target;
elParent = target.parentNode;
elGrandparent = target.parentNode.parentNode;
elGrandparent.removeChild(elParent);
e.preventDefault();
feedback.innerHTML = "Item removed.";
}
list.addEventListener("click", function (e) {
removeFromList(e);
}, false);
var btn = document.getElementById("add");
btn.addEventListener("click", addToList, false);
<!DOCTYPE html>
<html>
<head>
<title>Todo List</title>
</head>
<body>
<input type="text" name="item"><br />
<input type="button" name="add" value="Add" id="add">
<ul id="list">
<li><a href="#">Go to the store.</a></li>
<li><a href="#">Visit family.</a></li>
</ul>
<div id="feedback"></div>
<script type="text/javascript" src="todo.js"></script>
</body>
</html>
Sie verwenden 'appendChild' nicht korrekt. [Überprüfen Sie Ihre Konsole] (http://stackoverflow.com/documentation/javascript/185/hello-world/714/using-console-log#t=201609012208120879067) und Sie werden einen Fehler im Zusammenhang damit sehen. Wenn Sie 'newElement' in' 'wollen, müssen Sie mit' document.createElement' ein neues '' erstellen und dann' newLink.appendChild (newElement) '. Ähnliches Problem mit 'newElement.innerHTML = newItem'. Verwenden Sie "innerHTML" nur mit Strings, nicht mit Elementen. –
Außerdem haben Sie kein Element mit 'id =" item "' in dem Code, den Sie angezeigt haben, so dass 'document.getElementById (" item ")' fehlschlägt und den Rest Ihres Skripts durchbricht. – dave