【发布时间】:2012-05-27 20:28:53
【问题描述】:
我想使用 DocumentFragment 和 querySelector 来制作和修改 DocumentFragment。我正在使用Inserting arbitrary HTML into a DocumentFragment 中的一些代码从 HTML 字符串创建片段:
stringToDocumentFragment = function(html_string) {
var frag = document.createDocumentFragment();
var holder = document.createElement("div")
holder.innerHTML = html_string
frag.appendChild(holder)
return frag
}
它有效:
test_one = stringToDocumentFragment('<one><two>test</two></one>')
#document-fragment
test_one.querySelector('one')
> <one>...</one>
但是,如果我使用 <html> 或 <body> 之类的元素,则会失败:
test_two = stringToDocumentFragment('<html><body>test</body></html>')
#document-fragment
test_two.querySelector('html')
null
Chrome 和 Firefox 中的行为是相同的。
【问题讨论】:
-
a
div元素确实不能包装html或body元素,它也不需要。这里真的有问题吗? -
首先,为什么要创建
<html>和<body>? -
@Joseph 目的是执行服务器端 DOM 构建。我只想让它先在浏览器中运行。
标签: javascript dom documentfragment queryselectall