我想使用 DocumentFragment 和 querySelector 来制作和修改 DocumentFragments。我正在使用将任意 HTML 插入 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>
or之类的元素<body>
,它会失败:
test_two = stringToDocumentFragment('<html><body>test</body></html>')
#document-fragment
test_two.querySelector('html')
null
Chrome 和 Firefox 中的行为是相同的。