2012-01-13 5 views
0

後、私はHTML(省略)は、次のしているjQueryを使って別の親の子を取得します。順序付けられていない最初のリストの最後に達したら(C)、.activedivに移動し、Dから開始します。私は.active最初li後の最後の出現を選択するために、jQueryのを使用することができますどのようにはセレクタ

、などのためのparent().parent()として(私の意見では)に頼ることなく、それがある子誰のに関わらず脆弱な構造例?

+0

wht jQueryは、最初の無条件リストの最後が 'c'を意味するまでに到達しようとしました – Murtaza

答えて

1

1つのリストの中で、これを試してみてください。 http://jsfiddle.net/alnitak/Hdy4A/

+0

それは素晴らしいです、ありがとう! – Laurens

+0

@Laurensあなたが受け入れて以来、私はコードを変更しました - これはもう少し効率的です – Alnitak

1

これで

var $a = $('.active'); 
var $n = $a.next('li'); 

if ($n.length == 0) { 
    $n = $a.closest('.content') // first ancestor matching class 
     .next('.content')  // next sibling also matching class 
     .find('li').first(); // first <li> descendent therein 
} 
$a.removeClass('active'); 
$n.addClass('active'); 

作業のデモでは、EDITより一般的なコードは、完全なフローを処理するために作られ

var $active = $('li.active'); 
$active.removeClass('active') 
    .next('li') 
    .add($active.parents('.content:first') 
     .next('.content') 
     .find('li:first')) 
    .first().addClass('active'); 

JSFiddle


を必要とするすべてである