nodeList.style.display = 'flex' 不起作用



我找不到问题。我只是得到了";未捕获的类型错误:无法设置未定义的"的属性"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'

它所做的是首先检查财产。如果它找到了确切的属性,则赋值,否则跳过。

最新更新