为什么jquery选择textnodes而不是html元素?

为什么jquery选择textnodes而不是html元素?,jquery,Jquery,这是我的密码: $text = $(unescapedText) console.log($text) 我在控制台中看到的对象是HTML元素和文本节点的混合体: [#text, <div></div>] 有人知道为什么会这样吗 我知道这不是一个很好的描述,但是这个问题的发生非常不一致 如果字符串作为参数传递给$,jQuery将检查 字符串,以查看它是否看起来像HTML,即以开头。 如果不是,字符串将被解释为选择器表达式,如下所示 如上所述 根据上述情况: $text

这是我的密码:

$text = $(unescapedText)
console.log($text)
我在控制台中看到的对象是HTML元素和文本节点的混合体:

[#text, <div></div>]
有人知道为什么会这样吗

我知道这不是一个很好的描述,但是这个问题的发生非常不一致

如果字符串作为参数传递给$,jQuery将检查 字符串,以查看它是否看起来像HTML,即以开头。 如果不是,字符串将被解释为选择器表达式,如下所示 如上所述

根据上述情况:

$text = $('blah blah blah');
尝试选择至少有两个blah祖先的节点blah。 它完全不同于:

$text = $('<blah> blah </blah>');
它尝试创建一个元素


这可能不是答案,但正如您所看到的,您需要发布一些unescapedText示例和它发生的HTML示例。即使很难预测。如果您发布以下内容,我假设至少发生过一次:

之所以发生这种情况,是因为您传递了一个以纯文本而不是html开头的html字符串?在jQuery的最新版本中,可能会抛出一个错误。创建一个提琴也许是为了说明这个问题,这似乎不太可能是unescapedText值?没有html的字符串?$的行为取决于它的第一个参数的类型和值。@BenjaminGruenbaum发布一个提琴也无济于事,因为这个问题很难预测,即使是一个简单的参数片段code@codeninja这个问题很难预测,这意味着什么?这听起来不像是比赛条件或太复杂的事情。如果你没有问题,你可以解释我们可能帮不了你。