innerHTML属性不会用内容填充容器

时间:2018-06-08 12:15:20

标签: javascript

所以我正在尝试构建html块并将其附加到之前创建的容器中。不知何故,它在其他页面上工作,但很难在当前页面上显示数据。

this.node = document.querySelector('.primary_block');
this.element = document.createElement('div');
this.element.className = 'slides_pageName';
this.element.style.cssText = 'position: relative;';

this.body = '<div><div>text ';
this.element.innerHTML = this.body + buildRecommendationsBody() + '</div></div>';
this.node.parentNode.insertBefore(this.element, this.node.nextSibling);

function buildRecommendationsBody(){
  return 'magic content';
}
<div id="body">
  <div class="primary_block">primary block</div>
  <div class="block_last">last block</div>
</div>

运行代码后,我可以看到已创建元素.slides_pagename并成功应用了css规则position: relative;。我甚至可以打印this.element.innerHTML并查看它包含我需要的所有数据。 但是某种方式this.node.parentNode.insertBefore只添加了没有创建innerHTML的空容器。怎么可能以及如何处理这种情况?

编辑使用代码段,它可以处理随机内容,但不适用于我正在应用的内容。

1 个答案:

答案 0 :(得分:-1)

你想用这个来解决什么?

如果要添加html,则需要将有效的HTML字符串分配给.innerHTML方法。

这里你要关闭一些以前没有打开过的div元素 this.buildRecommendationsBody(data) + '</div></div>';