2011-12-14 64 views
1

我需要获取其第n个父元素(即elem.parent()。parent()... parent())具有特定类的所有元素。那可能吗?父母在jQuery中的选择

例如:

<div class="success"> 
    <div id="depth-1"> 
    <div id="depth-2"> 
     <div>Return me</div> 
     <div>Return me</div> 
    </div> 
</div> 
</div> 

具有3父深度和类“成功”的命令将返回"Return me"的div。

回答

1

我不知道正深,但这会得到其曾祖父母(n = 3)拥有类success的所有div。

$('.success > * > * > div') 

您可以编写一个函数来生成选择器。喜欢的东西:

function getNDeepSelector(n, className) { 
    var selector = '.' + className, ii; 
    for (ii = 0; ii < n; ii += 1) { 
     selector += ' > *' 
    } 
    return selector; 
} 
+0

谢谢,因为我来自蟒蛇,一个很好的解决方案将是 $(+ “”。加入([ “> *”] * n)是有什么等值的成功。。 jQuery? – Joel 2011-12-14 21:34:15

2

可以按如下方式使用儿童选择:

var returnMe = $(".success > * > * > *"); 

虽然在特定的例子,我可能会做:

var returnMe = $(".success div div div");