jQuery.find() 忽略根节点
我的 jQuery 对象如下所示:
var myJq = jQuery("<div class='a'></div><div class='b'></div>")
myJq.find(".a")
返回一个空的 jQuery 对象,显然是因为 find()
仅搜索子项 em> 包含在 jQuery 对象中的节点,而不是节点本身。
如何使用选择器抓取 myJq
中的 div 之一?
My jQuery object looks like this:
var myJq = jQuery("<div class='a'></div><div class='b'></div>")
myJq.find(".a")
returns an empty jQuery object, apparently because find()
searches only the children of the nodes contained in a jQuery object, not the nodes themselves.
How can I grab one of the divs in myJq
using a selector?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要使用
.filter()
代替。这将过滤 jQuery 对象顶层的项目。
You need to use
.filter()
instead.This will filter through items at the top level of the jQuery object.
这是一个.find2(),它将查找根元素和子元素:
有了这个,您可以执行以下操作:
以下是有关它的更多信息:http://danielnouri.org/notes/2011/03/14/a-jquery -find-that-also-finds-the-root-element/
Here's a .find2() that'll find both root elements and children:
With this, you can do:
Here's more about it: http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/
您可以使用
.filter()
或(更好、更快)使用
.first()
Benchmark
.first() 对我来说快了大约 8 倍。
You can either use
.filter()
or (better, faster) use
.first()
Benchmark
.first()
is about 8x faster for me.