2014-01-27 74 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

相關問題