2012-09-25 15 views
1

這裏是在Firebug中的測試運行。我試圖動態地創建一個jQuery對象,然後使用class或id選擇器找到它的一部分。注意find()調用如何給出空的結果。jQuery:提取動態加載的html的部分

>>> var testhtml = '<div class="oggi">h</div>' 
undefined 
>>> $(testhtml) 
[div.oggi] 
>>> $(testhtml).find(".oggi") 
[] 
>>> var testhtml2 = '<div id="yggi">hjhj</div>' 
undefined 
>>> $(testhtml2) 
[div#yggi] 
>>> $(testhtml2).find("#yggi") 
[] 

我是否應該解釋這一點,因爲您無法對未連接到瀏覽器主DOM樹的html做一些jQuery操作?是否還有其他一些技巧可以用來完成這項工作?

我設法通過在html中創建一個臨時div來更好地工作,在那裏加載數據,然後執行find()。

我的實際任務是使用ajax加載一段html,然後將它的不同部分複製到網頁中的不同位置。

回答

2

.find()用來找孩子,用.filter()代替。

var testhtml = '<div class="oggi">h</div>'; 

// if you want to check it whether has a class, use  
console.log($(testhtml).is(".oggi")); 

// or you could use filter to get the element you want. 
console.log($(testhtml).filter('.oggi')); 
+0

D'oh!現貨 - 謝謝。我需要再等五分鐘才能點擊接受這一個。 :) –