【发布时间】:2018-06-04 02:37:02
【问题描述】:
在阅读的时候碰巧看到了这段代码。 ajax 调用的响应是这样的纯 html:
<div id="connectionId">123444</div>
令我惊讶的是,他们能够像这样检索值:
$('<div id="connectionId">123444</div>').text() // output 123444
我的印象是 jQuery 只有在添加到 DOM 时才能读取这些值。
有人可以分享一些关于这种行为的信息吗?我在这里理解错了什么?
注意:它没有在 DOM 中创建 div 元素。
【问题讨论】:
-
$('<div id = "connectionId">123444</div>')创建一个jquery DOM 元素,id 为connectionId,包含123444的文本。 DOM 元素存在并在内存中,只是没有附加到页面的 DOM。 jQuery 可以毫无问题地读取/操作任何包装的 DOM 元素,无论它是否是页面 DOM 的一部分。 -
你能再解释一下吗?
-
jQuery 基本上使用文档片段(我认为)创建了一个新的 jQuery 对象,因此无需将它们添加到 DOM 中即可工作。
-
所以@Andy 使用 document.createDocumentFragment() 来管理??
标签: javascript jquery html dom