我在 HTMLInputElement 的 Array.forEach () 上收到"Cannot read property 'innerText' of undefined"错误<ano



我知道这个错误是因为这里"cardTxt";不是字符串。我通过检查语法类型就知道了。但是为什么这不能是一根绳子。我找不到。我在这里使用了bootstrap进行造型。有人请推荐我。我真的陷入了困境。

let search = document.getElementById('searchTxt');
search.addEventListener("input", function(){
let inputVal = search.value.toLowerCase();
let noteCards = document.getElementsByClassName('noteCard');
Array.from(noteCards).forEach(function(element){
let cardTxt = element.getElementsByTagName("p")[0].innerText;
if(cardTxt.includes(inputVal)){
element.style.display = "block";
}
else{
element.style.display = "none";
}
})

唯一的解释是,当您试图访问空数组的索引0时,传入的元素中没有p标记。尝试

console.log(element.getElementsByTagName("p"));

并查看输出是否为空。

最新更新