首页 > 解决方案 > 使用 object.keys 和 foreach 显示数据时出错,使用 document get element by id

问题描述

目前我正在尝试让我的 js 脚本显示对象中的数据udata

我不断收到错误:

未捕获的类型错误:无法读取 null 的属性“innerHTML”。

我已经使用字符串 ( var str = 'test') 进行了测试,并且没有给出错误,但是一旦我切换到使用itemValue作为 id 进行检查,我就会得到错误。我曾尝试使用.toString()将密钥设为字符串,但这也不起作用。不知道该怎么办。该!= null语句应该foreach避免在少数情况下对象键不对应于 html 中的 id 的空操作。

我将不胜感激任何帮助!

if(localStorage.udata != null){
    var udata = JSON.parse(localStorage.getItem('udata'));

    Object.keys(udata).forEach(function (itemValue) {
        if(document.getElementById(itemValue).innerHTML != null)
            document.getElementById(itemValue).innerHTML = udata[itemValue];
    });

标签: javascript

解决方案


您的检查实际上导致了错误。你必须检查是否

 document.getElementById(itemValue)

也就是说null,尝试访问.innerHTML会导致错误。


推荐阅读