Können Sie mir bitte helfen? Wenn ich das ausführe, bekomme ich "Uncaught TypeError: Kann die Eigenschaft 'querySelector' von undefined nicht in der Funktion 'bindTaskEvents' lesen, wo die Funktion die Liste" completedTasksHolder "behandelt. Probieren Sie dies in der Konsole:Uncaught TypeError: Kann die Eigenschaft 'querySelector' von undefined nicht lesen
console.log(completedTasksHolder.children[0])
gibt die einzige li nur gut.
var taskInput = document.getElementById("new-task"); // new-task
var addButton = document.getElementsByTagName("button")[0]; // first button
var incompleteTasksHolder = document.getElementById("incomplete-tasks"); // ul#incomplete-tasks
var completedTasksHolder = document.getElementById("completed-tasks"); // ul#completed-tasks
// Add a new task
var addTask = function(){
console.log("Add task...");
}
// Edit an existing task
var editTask = function() {
console.log("Edit task...");
}
var deleteTask = function() {
console.log("Delete task...");
// Delete an existing task
// When the Delete button is pressed
// Remove the parent li from the ul
}
var taskCompleted = function() {
console.log("Complete task...");
// Mark a task as complete
// When the checkbox is checked
// Append the task li to the #completed-tasks
}
// Mark a task as incomplete
var taskIncomplete = function() {
console.log("Incomplete task...");
// When the checkbox is unchecked
// Append the task li to the #incomplete-tasks
}
var bindTaskEvents = function(taskListItem, checkBoxEventHandler) {
console.log("Bind li events");
// select li's children
var checkbox = taskListItem.querySelector("input[type=checkbox]");
var editButton = taskListItem.querySelector("button.edit");
var deleteButton = taskListItem.querySelector("button.delete");
// bind editTask to editButton
editButton.onclick = editTask;
// bind deleteTask to deleteButton;
deleteButton.onclick = deleteTask;
// bind checkBoxEventHandler to checkbox
checkbox.onchange = checkBoxEventHandler;
}
// Set the click handler to the addTask function
addButton.onclick = addTask;
// Cycle over incompleteTasksHiolder ul list items
for (var i = 0; incompleteTasksHolder.children.length; i++) {
// bind events to li' children (taskCompleted)
bindTaskEvents(incompleteTasksHolder.children[i], taskCompleted);
}
// Cycle over completedTasksHiolder ul list items
for (var i = 0; completedTasksHolder.children.length; i++) {
// bind events to li' children (taskCompleted)
bindTaskEvents(completedTasksHolder.children[i], taskIncomplete);
}
Was kann hier falsch sein? Vielen Dank!
Was ist 'incompleteTasksHolder.children [i]'? – Rayon
Es ist die ul (container) mit liste artikel wie die kinder –