为什么这个jQuery片段:
var html = '<div id="a">abc</div>' +
'<div id="b">def</div>';
$(html).find('#a')
返回空结果([]
)? (fiddle)
如何在不将#a
div插入实际DOM文档的情况下访问它?
答案 0 :(得分: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). 强>
答案 1 :(得分:4)
查找子节点中的外观。由于#a
是您的顶级节点,因此无法找到它。将片段包装在父元素中,或使用.filter('#a')
。