javascript - 使用 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];
});
解决方案
您的检查实际上导致了错误。你必须检查是否
document.getElementById(itemValue)
也就是说null
,尝试访问.innerHTML
会导致错误。
推荐阅读
- excel - 下载C盘文件名到指定文件夹
- c - C 代码在 linux 上完美运行,但在 MacOS 上却不行
- spring-boot - 两小时后springboot关机
- dreamweaver - 使用 Dreamweaver 将代码插入网站上每个页面的头部
- python - ValueError:一个系列的真值在一个热编码错误中不明确
- mysql - 无法在 docker 容器内创建 mysql 客户端:错误 1045 (28000):用户“root”@“localhost”的访问被拒绝(使用密码:是)
- python - Heroku 没有返回 Django JsonResponse
- javascript - 带有点击警报的 ngb 日历
- android - 是否有关于带有屏幕截图的 Android 样式/主题的良好文档?
- c++ - 对 reverse_iterator 的 C++20 更改会破坏此代码吗?