2009-06-24 67 views
0

這裏有一個Firebug的會話從jQuery find()期望哪些行爲?

>>> var e = $("<div>div-1<p>p-1</p></div><div>div-2</div><p>p-2</p>"); 
>>> e 
[div, div, p] 
>>> e.find('div') 
[] 
>>> e.find('p') 
[p] 

是不是e.find('div')e.find('p')應該分別返回[div, div][p, p]

回答

4

我認爲你的問題在於它是在e中的每個元素上調用find,因爲e不是整個元素。如果你用另一個標籤包裝e,即:

var e = $("<div><div>div-1<p>p-1</p></div><div>div-2</div><p>p-2</script></div>"); 

然後你得到你想要的行爲。

另外,如果你不希望修改E可以使用

e.filter("p").add(e.find("p"));