我正在将textnodes添加到documentFragment中,如下所示:
var foo = document.createDocumentFragment();
var someText = "Hello World";
foo.appendChild(document.createTextNode(someText));
这工作正常,但有时我传递“文本”,其中包括这样的内联链接:
var someOtherText = "Hello <a href='www.world.com'>World</a>";
我的处理程序中的哪个转换为硬编码文本而不是链接.
题:
如何将上述HTML字符串附加到documentFragment中?如果我没有使用textNodes,可以使用appendChild吗?
解决方法:
创建一个临时div,在innerHTML中插入文本,然后将div的所有节点移动到片段.由于元素一次只能在一个位置,因此它将自动从临时div标签中删除.
var frag = document.createDocumentFragment();
var div = document.createElement('div');
div.innerHTML = '<a href="https://*.com/">Stack overflow</a>';
while (div.firstChild) frag.appendChild(div.firstChild);