![](/img/trans.png)
[英]Jquery selector — how to select the first of specified parents of current element
[英]How to select the current element together with parents of a certain class?
我有这样的事情:
body-viewport
div-page.active
div-panel
div-page
div-page
div-page
div-page.active //start here
题:
如果我从底部元素开始,是否有一种简单的查询方法可以选择所有活动页面?
这可行,但......
$('.div-page-active').closest('.body-viewport').find('.div-page-active').doSomething
感谢帮助!
所以从底部元素开始,我假设你已经在事件处理程序中收到了,所以我将调用this
(原始元素):
如果您希望所有其他.div-page.active
任何位置最接近的下元素.body-viewport
,我觉得你的表情是相当多的最佳方式:
$(this).closest(".body-viewport").find(".div-page.active");
如果你只需要.div-page.active
这是祖先元素this
(没有兄弟姐妹或表兄弟等),那么你就必须写一个循环,jQuery的没有一个“我找匹配选择X所有祖先并停止选择器Y“的匹配。 例如,像( 实例 ):
$("#target").click(function() {
var done = false;
$(this).parents().filter(function() {
var $this;
if (done) {
return false;
}
$this = $(this);
if ($this.hasClass("body-viewport")) {
done = true;
return true;
}
else {
return $this.hasClass("div-page") && $this.hasClass("active");
}
}).add(this).css("color", "green");
display("Matches turned green.");
return false;
});
在该示例中,当您单击最底部的.div-page.active
,它会转换为.div-page.active
,并且.body-viewport
绿色。 像这样(下面以粗体显示的匹配,不能在SO上做颜色),请注意我添加了一个不相关的.div-page.active
和一个堂兄,以显示它们是如何被包括在内的:
body-viewport div-page active -- ancestor, should be included div-panel div-page div-page div-page div-page active -- click me div-page active -- cousin, should NOT be included body-viewport div-page active -- unrelated, should NOT be included
尝试
$(this).siblings(".div-page-active").doSomething();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.