jQuery:确定 jQuery 对象是否是根 html 标签
假设我正在编写一个 jQuery 扩展方法。此方法应攀爬元素的祖先树,直到到达文档的根 标记,此时应停止。我已经实现了如下所示:
$.fn.foo = function() {
var $foo = this;
while($foo[0] !== $(document).children()[0]) {
// do stuff with $foo
$foo = $foo.parent();
}
// do stuff
};
我的问题是:有没有比 $foo[0] !== $(document).children()[0]
更好的方法来知道我是否'已经到达根 标记了吗?
Let's say I'm writing a jQuery extension method. This method should climb the ancestor tree of an element until it reaches the document's root <html>
tag, at which point it should stop. I've implemented this as shown here:
$.fn.foo = function() {
var $foo = this;
while($foo[0] !== $(document).children()[0]) {
// do stuff with $foo
$foo = $foo.parent();
}
// do stuff
};
My question is: is there a better way than $foo[0] !== $(document).children()[0]
to know whether I've reached the root <html>
tag?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不过,您似乎正在重新实现 parents() 。
You seem to be reimplementing parents(), though.
不要与第一个孩子进行比较,只需查看是否返回了父母:
这是一个工作小提琴。
Don't compare against the first child, just see if a parent is returned:
Here's a working fiddle.
这又如何呢?
或者,如果您实际上不需要向上遍历,而只想对给定节点的所有祖先执行操作,则可以使用 .parents() ,如下所示:
What about this?
Alternatively, if you don't actually need to traverse up, but only want to do things to all ancestors of a given node, you could use .parents() like so:
这应该停止在
HTML
处。或者,如果您对每个节点运行相同的 jQuery 方法,请执行以下操作:
This should stop at
HTML
.Or if you're running the same jQuery method(s) against each node, do this: