1
这里是我的代码:为什么jQuery选择textnodes而不是html元素?
$text = $(unescapedText)
console.log($text)
我在控制台中看到的对象是HTML元素和文本节点的混合物:
[#text, <div></div>]
有谁知道为什么会这样?
我知道这不是非常具有描述性,但是这个问题发生的非常不一致。
这里是我的代码:为什么jQuery选择textnodes而不是html元素?
$text = $(unescapedText)
console.log($text)
我在控制台中看到的对象是HTML元素和文本节点的混合物:
[#text, <div></div>]
有谁知道为什么会这样?
我知道这不是非常具有描述性,但是这个问题发生的非常不一致。
从http://api.jquery.com/jQuery/#jQuery2
如果将一个字符串作为参数传递给$()通过,jQuery的检查 字符串是否它看起来像HTML(即,它与<标记开头... >) 。 如果不是,则字符串被解释为选择器表达式,如上面解释的 。
,并根据上文:
$text = $('blah blah blah');
试图选择节点 “等等”,其具有至少两个 “等等” 的祖先。 它比完全不同:
$text = $('<blah> blah </blah>');
,试图创建的元素。
这可能不是答案,但正如您所看到的,您需要发布unescapedText的一些示例以及它发生的HTML示例。即使它“很难预测”。我假设它至少发生过一次,如果你张贴这:) :)
它发生,因为你通过一个html文本而不是html开头的字符串?在最近版本的jQuery中会引发错误。 –
创建一个小提琴(也许在http://www.jsfiddle.net)来说明问题,这似乎不太可能 –
什么是unescapedText值?没有html的字符串? $()的行为取决于其第一个参数的类型和值。 – fsw