gpt4 book ai didi

javascript - DocumentFragment 中不允许使用某些元素?

转载 作者:行者123 更新时间:2023-11-30 18:26:05 33 4
gpt4 key购买 nike

我想使用 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 中的行为是相同的。

最佳答案

文档片段是文档的一部分,而不是整个文档 - 因此你不应该有 <body><html>在文档片段中。文档片段的要点是有办法创建或存储许多顶级元素(某个文档的一部分)。当插入到实际文档中时,仅插入内部元素,而不插入顶级容器。

如果您想要一个包含 html 和正文部分的实际文档,请创建一个文档,而不是片段。

如果你只是想能够使用选择器操作,那么你根本不需要使用fragement。只需创建一个 div 并在 div 上设置 innerHTML 并在 div 上使用 querySelector 操作。你不需要文档片段。

关于javascript - DocumentFragment 中不允许使用某些元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10777034/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com