2011-12-14 13 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

Iは、n-深さ約わからないんだけど、この意志は大祖父母(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

私のpythonから来ているので、素敵なソリューションが $(+ "" .join([ "> *"] * n)のだろうおかげで、中に同等のものはありjQuery? – Joel

+1

Stringは単なるグローバルJavaScriptオブジェクトなので、jQuery固有の関数ではありません。私が知る限り、あなたが話しているような構造はありません。 – FishBasketGordo

2

あなたは子供セレクタを使用することができます。

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

が、あなたの特定の例では私はおそらくだろう:

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