首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以为HTML节点的innerHTML属性分配一个HTML吗?

我可以为HTML节点的innerHTML属性分配一个HTML吗?
EN

Stack Overflow用户
提问于 2015-01-27 21:57:56
回答 1查看 2.6K关注 0票数 1

我希望从给定的字符串填充html元素,这似乎没有更新dynamic-content div中的html:

index.html

代码语言:javascript
复制
<div id='dynamic-content'>
</div>

index.js

代码语言:javascript
复制
var dynamicContentNode = document.getElementById('dynamic-content');
dynamicContentNode.innerHTML = '<div><p>oh hai</p></div>';

我刚才没试过这个吗?

编辑:我分配给innerHtml而不是innerHTML

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 22:00:39

效果很好。

假设您在头文件中加载JS文件,因此DOM还没有准备好(在JS执行时div并不存在),所以您可以将整个过程封装在一个window.onload回调中,或者在HTML的末尾加载JS文件。

请参见下面两个示例之间的差异,反映了如果您在HTML之前和之后加载JS,实际会发生什么。

非工作版本:

代码语言:javascript
复制
<script>var dynamicContentNode = document.getElementById('dynamic-content');
dynamicContentNode.innerHTML = '<div><p>oh hai</p></div>';</script>
<div id='dynamic-content'>
</div>

工作版本:

代码语言:javascript
复制
<div id='dynamic-content'>
</div>
<script>var dynamicContentNode = document.getElementById('dynamic-content');
dynamicContentNode.innerHTML = '<div><p>oh hai</p></div>';</script>

使用onload回调进行工作的非工作版本:

代码语言:javascript
复制
<script>
  window.onload = function(){
    var dynamicContentNode = document.getElementById('dynamic-content');
    dynamicContentNode.innerHTML = '<div><p>oh hai</p></div>';
  }
</script>
<div id='dynamic-content'>
</div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28180825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档