【问题标题】:I am getting the error of "Cannot read property 'innerText' of undefined" at Array.forEach (<anonymous>) at HTMLInputElement.<anonymous>我在 HTMLInputElement.<anonymous> 的 Array.forEach (<anonymous>) 处收到“无法读取未定义的属性 'innerText'”的错误
【发布时间】:2020-11-07 22:49:56
【问题描述】:

我知道出现此错误是因为这里的“cardTxt”不是字符串。我通过检查 typeof 语法就知道了。但是为什么这不能是一个字符串。我无法找到。我在这里使用引导程序进行样式设置。有人请建议我。我真的被困在里面了。

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";
        }

    })

【问题讨论】:

  • 如果您也发布html代码,这将有助于轻松找到问题
  • "我知道出现这个错误是因为这里的 "cardTxt" 不是字符串。" 不,错误与 无法获取 ' 有关innerText' 因为您要查找的元素未定义(即错误消息!)...换句话说,element.getElementsByTagName("p")[0] 没有返回任何内容。但是如果没有看到正在处理的 HTML,我们无法帮助您找出为什么找不到它。

标签: javascript arrays json typeerror


【解决方案1】:

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

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

看看输出是否为空。

【讨论】:

    猜你喜欢
    • 2021-05-26
    • 2021-11-07
    • 1970-01-01
    • 2021-09-22
    • 2020-05-24
    • 2023-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多