2011-04-04 6 views
0

まず、冗長な質問であれば、私を許してください。合理的に具体的に検索するのは難しいケースであることに同意すると思います。選択した子の親を選択する

私は唯一のクラス「折りたたみ」のdiv要素を含む任意の李に.addClassを行うためにjqueryのを使用するなど

<li class='signature'> 
    <span class='label'>Signature:</span> 
    <div class='folding'> 
     <span class='data'></span> 
    </div> 
</li> 
<li class='issuer'> 
    <span class='label'>Issuer:</span> 
    <span class='data'></span> 
</li> 

などのように見えるのhtml

を持っていますが、他の嘘にはならない。私は巧妙に作られた各文を使ってこれを行うことができると確信していますが、私はjqueryセレクタだけを使ってこれを行う方法がなければならないことを直感的に感じています。

$('li > .moreclick').addClass("arrowable"); 

までですが、勿論、クラスはスパンに追加され、liには追加されません。

私は各自でつないでいますか? (もしそうなら、それを行うための最良の方法に関するヒントは素晴らしく、問題の範囲外であることは間違いありません)。

ありがとうございます!

答えて

2

をお試しください:

$("div.folding").parent().addClass("new-class") 

それ以外の場合、これはそれが見つかるまで階層を探し続けますli

$("div.folding").closest("li").addClass("new-class") 

[編集] ジオスラスカのソリューションははるかにいいです。私のここに参考にしておく。例えば

+0

あなたのソリューションは優れています。 Dioslaskaのソリューションはここで壊れます:http://jsfiddle.net/Svqdc/あなたの期待通りに動作します。 – Peeter

+0

はい、それは壊れますが、これは指定されたケースではありませんでした。例えば。祖先を持つ "折りたたみ"クラスの別のdivを配置した場合、この解決策は望ましくないクラスをliに追加するようにもブレーキをかけます。(しかし、解決策に違反することはありません、それは完全に正しいと私は実際にどのセレクターが速いかわからない) – dioslaska

+0

ああ、私は2つの違いを参照してください。比較に非常に便利です、@ルークと@ディオスラスカの両方に感謝します。私は解決策としてこれをチェックしていますが、私はどちらが私が使用しようとしているかを知るためにHTMLがフリーズするのを待たなければならないでしょうが、私はまだ両方のソリューションをupvoteするのに十分なカルマを得ていない、 ) – mediapathic

2

liは常に絶対的な親になるだろうされている場合は、次の

$('li:has(.folding)').addClass("arrowable"); 

jQuery documentation

+0

あなたがここでやったことと "$( 'li')。has"の間の実用的な違いは、以下の@littlealienによって示唆されていますか?何かありますか? – mediapathic

0

:遅すぎる

$('.folding').parent().addClass('arrowable'); 

//編集..

+0

まだ有用です。ありがとう! – mediapathic

0

これを試してみてください。あなたは、Liの唯一の直接の子を確認したい場合は

$('li').has('.folding').addClass("arrowable"); 
0

$('li:has(> div.folding)').addClass("arrowable"); 
+0

ええと、私はあなたが>これを行うことができるのか分からなかった。ありがとうございました。 – mediapathic

0

これを試してください:

$("li:has(div.folding)").addClass("new-class") 

これはdivsの親である正確li要素を選択しますがクラスは'folding'です。

+0

これを上記のdioslaskaのソリューションと比較すると、div.foldingをこのように指定できることはわかりませんでした。それは知ってよかった、ありがとう! – mediapathic

関連する問題