1

私は次のhtmlを持っています:-

<ul class="nav-list">
    <li><a style="cursor:pointer;"><span class="hello"> ></span>OVERVIEW</a> 
        <ul here>
            <li id="Overview"><a href="/en/overview">OVERVIEW</a>


        </ul>
    </li>
</ul>

span class hello をクリックすると、ul ここにクラスが追加され、次のことを試みました:-

<script>
$(function(){
    $('.hello').click(function(){
        $(this).siblings().find('ul').addClass('hello');
    })  
})
</script>

この場合、サブリング、親と子、および find ('ul') をどのように処理すればよいでしょうか?

4

7 に答える 7

3
<script>
$(function(){
    $('.hello').click(function(){
        $(this).closest("li").find('ul').addClass('hello');
    })  
})
</script>

最も近い参照、検索

于 2013-09-13T07:18:47.683 に答える
1

は、親要素ulの次の兄弟ですli

$(function(){
    $('.hello').click(function(){
        $(this).parent().next().addClass('hello');
    })  
})

デモ:フィドル

于 2013-09-13T07:18:36.267 に答える
1
<script>
$(function(){
    $('.hello').click(function(){
        $(this).parent().siblings().find('ul').addClass('hello');
    })  
})
</script>

スパンには兄弟 ul がありませんが、その親には ul があります

于 2013-09-13T07:19:09.787 に答える
1

次の 2 つの方法で実行できます。

1: .closest() でトラバースして .find() を使用する

$('.hello').click(function(){
    $(this).closest('li').find('ul').addClass('hello');
})

2: .parent() で 1 レベル上の要素を取得し、.siblings() を使用します

$('.hello').click(function(){
    $(this).parent().siblings('ul').addClass('hello');
})
于 2013-09-13T07:20:49.347 に答える
0
 $('.hello').click(function(){
        $(this).closest("li").find('ul').addClass('hello');
  }) 
于 2013-09-13T07:19:39.233 に答える
0

http://api.jquery.com/find/によると

siblings()電話は必要ありません

$(this).find('ul').addClass('hello');

良くなるよ

于 2013-09-13T07:20:40.980 に答える