2011-01-20 4 views
0

要素IDを使用せずにDOMツリーをトラバースするのに問題があります。JQueryで要素IDを使用せずにDOMツリーをトラバースするにはどうすればよいですか?

$('#dd-prefix-one dt a').click(function() { 
    $('#dd-prefix-one dd ul').slideToggle(); 
    $('#dd-prefix-two dd ul, #dd-prefix-three dd ul, #dd-prefix-four dd ul, #dd-prefix-five dd ul').fadeOut(200); 
}); 

このjQueryの中だけ変化に私のコードで5回繰り返される:jQueryの私は、現時点で使用しています。ここで

<dl id="dd-prefix-one" class="dropdown f-left"> 
    <dt><a href="#">Lorem<span class="value">ipsum</span></a></dt> 
    <dd><ul>...</ul></dd> 
</dl> 

:ここ

はHTML構造であり、 IDの...したがって、特定のIDから離れる必要があります。

私は何かが欠落しているに違いないが、.prevUntil()を使用しようとしました。

任意の助けをいただければ幸いです、おかげで

答えて

2

+0

@Nasir:助けになるのはうれしい! =) –

0

引数としてIDを取る関数として出て、それを抽象。

$('dl dt a').click(
    function() { 
     $(this).closest('dl').find('ul').slideToggle(); 
     $(this).closest('dl').siblings().find('ul').fadeOut(200); 
     return false; 
    }); 

JS Fiddle demo:あなたが好きなものを使用することができ

<dl id="dd-prefix-one" class="dropdown f-left"> 
    <dt><a href="#">Lorem<span class="value">ipsum</span></a></dt> 
    <dd><ul>...</ul></dd> 
</dl> 

:貼り付けコードとビットこのような何かが動作するはず

+0

申し訳ありませんが、JavaScript/JQueryの新機能です。私はあなたが何を意味するのかを正確には分かりません。それを関数に抽象化します。 – Nasir

2

(テストしていません)

$('dl.dropdown dt a').click(function() { 
    $(this).closest('dl').find('ul').slideToggle(); 
    $('dl.dropdown dt a').not(this).find('ul').fadeOut(200); 
}); 
+0

ありがとうございました!私は今から.find()を使うつもりだと思う***** – Nasir

関連する問題