2014-01-27 41 views
-1

工作,为什么会这样jQuery的片段:为什么jQuery.find不片段

var html = '<div id="a">abc</div>' + 
    '<div id="b">def</div>'; 
$(html).find('#a') 

返回一个空结果([])? (fiddle

我该如何访问#a div而不将其插入到实际的DOM文档中?

回答

4

这是因为#a是父节点。 find()搜索儿童/孙辈等,您将需要再次包装以便使用find()

var $html = $('<div id="a">abc</div><div id="b">def</div>'); 
var x = $('<div></div>').append($html); 
console.log(x.find('#a')); 

Live demo (click).

filter()做你在找什么:

var $html = $('<div id="a">abc</div><div id="b">def</div>'); 
console.log($html.filter('#a')); 

Live demo (click).

4

查找看起来子节点。由于#a是您的顶级节点,因此无法找到它。将您的片段包装在父元素中,或使用.filter('#a')

+0

谢谢,那真是愚蠢的我...... – Yogu

相关问题