我找不到问题。我只是得到了";未捕获的类型错误:无法设置未定义的"的属性"display";这个错误。
function filterTodo(e){
const todos = todoList.childNodes;
todos.forEach(function(todo){
switch (e.target.value){
case "all" :
todo.style.display = 'flex';
break;
case "completed" :
if(todo.classList.contains('completed')){
todo.style.display = 'flex';
}
break;
}
});
}
childNodes
包括所有节点,包括文本节点(不具有style
属性。
请改用children
。它提供了子元素。
您可以在此处使用属性cahining。。。。
todo?.style?.display = 'flex'
它所做的是首先检查财产。如果它找到了确切的属性,则赋值,否则跳过。