Jquery 在新创建的元素上查找()无效
我创建新的jQuery元素:Jquery 在新创建的元素上查找()无效,jquery,Jquery,我创建新的jQuery元素: var myJqEl = $('<div id="myDiv">Div content<span>Span content</span></div><p>P content</p>'); 你能告诉我为什么第一个和第三个返回null而第二个返回完整内容吗 谢谢。对div使用filter,而不是p: var mynewEl1 = myJqEl.filter('div').html(); var m
var myJqEl = $('<div id="myDiv">Div content<span>Span content</span></div><p>P content</p>');
你能告诉我为什么第一个和第三个返回null而第二个返回完整内容吗
谢谢。对
div
使用filter
,而不是p
:
var mynewEl1 = myJqEl.filter('div').html();
var mynewEl2 = myJqEl.find('span').html();
var mynewEl3 = myJqEl.filter('p').html();
必须将所有HTML内容包装到另一个元素中,例如
div
one。所以这个代码:
var myJqEl = $('<div><div id="myDiv">Div content<span>Span content</span></div><p>P content</p></div>');
您有一个包含两个对象的数组:第一个是您的div
,第二个是p
。在google chrome Web Inspector中,您将看到如下内容:
$('<div id="myDiv">Div content<span>Span content</span></div><p>P content</p>');
[<div id="myDiv">…</div>, <p>P content</p>]
var myJqEl = $('<div><div id="myDiv">Div content<span>Span content</span></div><p>P content</p></div>');
[…, 磷含量]
当您在包装的集合中使用类似于find
的方法时,它将在第一个元素上执行,即本例中的div
标记
这就是mynewEl2
返回正确数据的原因。因为span
标记存在于div
中(包装集的第一个元素)
div
标记本身没有任何div
标记。因此mynewEl1
为空
当您将所有HTML数据包装到单个标记中时,包装集只包含一个元素,并且所有HTML数据都将存在于该标记中。根级别有两个不同的元素,如果您有一个包含这两个元素的“根”,则第一行和第三行将无法检索
null
例如,尝试如下定义变量myJqEl
:
$('<div id="myDiv">Div content<span>Span content</span></div><p>P content</p>');
[<div id="myDiv">…</div>, <p>P content</p>]
var myJqEl = $('<div><div id="myDiv">Div content<span>Span content</span></div><p>P content</p></div>');
var myJqEl=$('Div contentSpan contentp content);
因为你正在搜索一个DIV
,这是你用来搜索的jQuery对象。在这个DIV
中没有DIV,也没有P
。请看这个演示:第一行日志是什么?你能发布你所有的代码吗?谢谢JSang,这就是我需要的