【发布时间】:2017-02-28 20:01:04
【问题描述】:
我需要使用纯 javaScript 将一些 html 附加到现有元素:
function create(htmlStr) {
var frag = document.createDocumentFragment(),
temp = document.createElement('div');
temp.innerHTML = htmlStr;
while (temp.firstChild) {
frag.appendChild(temp.firstChild);
}
return frag;
}
var target = document.querySelectorAll(".container-right");
var fragment = create(
'<div class="freetext"><p>Some text that should be appended...</p></div>'
);
document.body.insertBefore(fragment, document.body.childNodes[0]);
这有点工作,但我有两个问题:
如何确保将 html 片段附加到具有
container-right类的 div 而不仅仅是正文?将最后一行更改为document.body.insertBefore(fragment, target);不起作用。如何在目标元素的内容之后插入 html - 在现有内容之后 - 如 jQuery 的 append()?
非常感谢任何帮助。
【问题讨论】:
-
您最好创建一个 div (
var div = document.createElement('div');),设置它的 html (div.innerHTML = "<span>Hello World!</span>";),然后将其附加到正文 (document.body.appendChild(div);) -
document.querySelectorAll()返回一个NodeList,所以你需要document.body.insertBefore(fragment, target[0]);。
标签: javascript