-2

こんにちは私は1つのdivに2つのスパンがあります。.spクリックするとこのdivを非表示にしたいのです#hidemainが、条件を確認する必要があります:
both span should be hidden
現在、関数を実行すると、非表示になっているスパンが1つしかない場合に、メインdivが非表示になります。

    <head>
    <script type="text/javascript">
        $(function(){
            $('a#firsta').click(function(){
                $('#one').hide();
            });

            $('a#firstb').click(function(){
                $('#two').hide();
            });

            $('a#hidemain').click(function(){
                $('.sp').find('span').each(function(){
                    if($(this).is(':hidden')){
                        $('.sp').hide();
                    }
                });
            });
        });
    </script>    
</head>
<body>
    <div class="sp">
        Main
        <span id="one">fist</span>
        <span id="two">Second</span>
    </div>

    <a href="#" id="hidemain">hide main</a><br>
    <a href="#" id="firsta">hide first</a><br>
    <a href="#" id="firstb">hide Second</a>
</body>
4

3 に答える 3

1

私はあなたがこれを探しているかもしれないと思います:

 $('a#hidemain').click(function() {
     $('.sp').hide();
     $('.sp').find('span').each(function() {
         if(!$(this).is(':hidden')) {
              $('.sp').show();
         }
     });
 });
于 2013-01-07T15:08:36.573 に答える
1

これを試して:

 $('a#hidemain').click(function(){
     if(!$('.sp').find('span:visible').length) {
        $('.sp').hide();
     };
 });

こちらをご覧ください

ルート要素の下にある目に見えるスパンを探します。何も見つからない場合は、divを非表示にします。

于 2013-01-07T15:15:32.710 に答える
1

私が理解している限り、あなたはを非表示にしたいのですが、その中の<div>すべて<span>のものも非表示になっている場合に限ります。正しい?

これを行う方法は次のとおりです。

$(function () {
    $('a#firsta').on('click', function(e) {
        $('#one').hide();
        e.preventDefault();
    });

    $('a#firstb').on('click', function(e) {
        $('#two').hide();
        e.preventDefault();
    });

    $('a#hidemain').on('click', function(e) {
        if ($('div.sp span').filter(':visible').length === 0) {
            $('div.sp').hide();
        }
        e.preventDefault();
    });
});

jsFiddleの動作:http://jsfiddle.net/NETKf/

于 2013-01-07T15:16:43.180 に答える