2011-12-14 95 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");