javascript - jQuery find() 会出现什么行为?

标签 javascript jquery dom

这是一个 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/

相关文章:

javascript - HTML ID 原来就像侵入式 JavaScript?

javascript - 使用 jQuery 隐藏 Bootstrap 选项卡直至 .active

jquery - 在播放动态创建的音频对象时进行访问

javascript - 防止文档样式表影响chrome扩展注入(inject)的元素样式

javascript - 如何在模型获取时将 1 转换为 true 或将 0 转换为 false

javascript - 如何判断什么是直接操作 DOM 中的样式

JavaScript,循环所有选择?

javascript - 自动为堆叠条形图选择颜色

javascript - 在 Angular 组件中共享大的 json 数据是好是坏?

Javascript::firstChild 的 textContent/innerText