gpt4 book ai didi

jquery - 为什么 $ ('

' ) 返回多于一个节点的数组?

转载 作者:太空宇宙 更新时间:2023-11-04 14:34:32 24 4
gpt4 key购买 nike

我对 $.parseHTML() 感到困惑功能。我认为如果源 html 有一个根节点,这个函数应该返回一个带有单个 DOM 节点(根节点)的数组,所有内容都作为子节点附加。大多数时候它都是这样工作的,例如:

var nodes = $.parseHTML('<div><div>foo</div></div>');
console.debug(nodes.length); // prints 1

但是如果根节点是<p>然后 DOM 节点的结构丢失并且 HTML 被分解为多个断开连接的节点:

var nodes = $.parseHTML('<p><div>foo</div></p>');
console.debug(nodes.length); // prints 3

我创建了一个 jsfiddle您可以在哪里尝试这些案例。

如果我使用 $(html) 没有任何区别或 $.parseHTML(html) .

<p> 有什么特别之处? ?为什么它以不同的方式解析?这是错误还是功能?

最佳答案

那是因为当解析 HTML 代码时,它不会以单个根节点结束。

段落中不能有 block 元素,因此段落在 div 元素开始的地方结束。然后该段落的结束标记成为第二个段落节点。

因此,您最终得到的元素是:

<p></p>
<div>foo></div>
<p></p>

关于jquery - 为什么 $ ('<p><div></div></p>' ) 返回多于一个节点的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28878238/

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