这是一个 Firebug session
>>> 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]
分别?
最佳答案
我认为你的问题是它在 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"));
关于javascript - jQuery find() 会出现什么行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036593/