1

group1またはgroup2をクリックしたときにulを切り替えたい

HTML

<li class="sort">
  <span></span>
  <a class='expand'>Group1</a>
  <a style='padding-right:10px; float:right' href='#'>Delete</a>
  <a style='padding-right:10px; float:right' href='#'>Edit</a>
  <ul id="0" style='display:none'>
    <li style='border:none' id="1" class='sort'>
        <span></span>
        <a href='#'>Patent 1</a>
        <em style='padding-left: 60px;'>The description of patent 1</em>
        <a style='padding-right:10px; float:right' href='#'>Delete</a>
        <a style='padding-right:10px; float:right' href='#'>Edit</a>
    </li>
    <li style='border:none' id="2" class='sort'>
        <span></span>
        <a href='#'>Patent 2</a>
        <em style='padding-left: 60px;'>The description of patent 2</em>
        <a style='padding-right:10px; float:right' href='#'>Delete</a>
        <a style='padding-right:10px; float:right' href='#'>Edit</a>
    </li>
  </ul>
</li>

私は試した

 <script>
  $(document).ready(function(){
    $('.expand').click(function() {
        $(this).next('ul').slideToggle('slow');
    });
});
</script>

ありがとう

4

3 に答える 3

3

nextAll次のコマンドを使用して、一致したセットを最初の要素に減らすことができますeq

$('.expand').click(function() {
    $(this).nextAll('ul').eq(0).slideToggle('slow');
});

メソッドがセレクターと一致する場合、メソッドは直後の兄弟nextを返します。あなたの場合、それは「削除」リンクであり、一致しません。

ulの子として常に1つの要素しかない場合はli、次を使用できますsiblings

$('.expand').click(function() {
    $(this).siblings('ul').slideToggle('slow');
});
于 2012-06-28T13:24:56.247 に答える
0

IDを介してulをターゲットにすることもできます。

$('a.expand').on('click',function(e){
    $('ul#0').slideToggle('slow');
 });

これを複数のグループで機能するように適応させる場合、ulのセレクターに一致する属性をaに与えることを検討しましたか?

$('a.expand').on('click',function(e){
    e.preventDefault();
    var id = $(this).attr('href');
    $('ul#'+id).slideToggle('slow');
 });

そうすれば、DOMの配置が変更されても、コードは引き続き機能します。

于 2012-06-28T13:26:36.397 に答える
0

コードをここに置き換えるだけです:

$(document).ready(function(){
    $('.expand').click(function() {
        $(this.parentNode).children('ul').slideToggle('slow');
    });
});​

<UL>隣にはありません<A>

ワーキングフィドル

于 2012-06-28T13:27:52.703 に答える