这里有啥问题,为啥 innerHTML 不起作用? [关闭]

Posted

技术标签:

【中文标题】这里有啥问题,为啥 innerHTML 不起作用? [关闭]【英文标题】:Whats wrong here, why is innerHTML not working? [closed]这里有什么问题,为什么 innerHTML 不起作用? [关闭] 【发布时间】:2012-11-21 09:45:04 【问题描述】:

我想问一下为什么 innerhtml 在以下代码中不起作用:

document.getElementById('text').innerHTML = localStorage["mytext"];

带有 id 文本的元素是一个 div 元素。如果我将 localStorage 与警报一起使用,它会给我正确的字符串,错误可能是什么?

【问题讨论】:

很难用这么少的元素来判断。你能用小提琴演示一下这个问题吗? “不工作”对尝试诊断问题没有帮助。你确定getElementById 匹配一个元素吗? 什么浏览器?你能发布 HTML 吗? @SajjanSarkar 带有id文本的元素是一个div元素 请在 jsfiddle 或 jsbin 上制作一个示例,以便我们看到一个完整的工作示例。您的 JS 可以在 div 位于 DOM 之前包含,或者可能存在 JS 错误,或者.... 恕我直言,可能存在太多问题。 【参考方案1】:

在尝试引用之前确保 div 存在,

window.addEventListener("load",function() 
    document.getElementById('text').innerHTML = localStorage.getItem("mytext");
,false);

这将在进行任何修改之前等待文档加载

【讨论】:

+1,从小提琴来看你是对的。不过,您应该将其更改为使用 getItem 而不是通过方括号访问它。【参考方案2】:

你能检查一下 localStorage["text"] 是否真的返回一个字符串吗?也许这个链接可以帮助你检查它是否真的是一个字符串。

https://***.com/a/9729103/1873758

【讨论】:

以上是关于这里有啥问题,为啥 innerHTML 不起作用? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥从函数调用分配给属性 innerHTML 不起作用?

为啥 jQuery 选择器在这里不起作用?

为啥onclick处理程序在javascript中与innerHTML一起使用时不起作用[重复]

为啥添加innerHTML后循环和数组停止工作?

尝试呈现按钮控件时,Angular innerHTML 属性不起作用

为啥我无法在文档上设置 innerHTML? [复制]