How to hide all elements except one using jquery?

后端 未结 4 1715
一生所求
一生所求 2020-12-02 08:31

I have HTML page:



  
&
相关标签:
4条回答
  • 2020-12-02 08:56

    A nice general approach:

    $('#the_id').siblings().hide()
    $('#the_id').parents().siblings().hide()
    

    Works for any element type.

    0 讨论(0)
  • 2020-12-02 09:06

    This should work:

    $('div:not(#myDiv)').hide();  // hide everything that isn't #myDiv
    $('#myDiv').appendTo('body');  // move #myDiv up to the body
    

    Update:

    If you want to hide EVERYTHING that, not just div elements, use this instead:

    $('body > :not(#myDiv)').hide(); //hide all nodes directly under the body
    $('#myDiv').appendTo('body');
    

    Probably simpler is to wrap the entire "hideable" part of the page in a big container element, and hide that directly though.

    Like so:

     <body>
         <div id="contents">
            <!-- a lot of other stuff here -->
            <div id="myDiv>
            </div>
         </div>
     </body>
    

    Then you can just do this, which is cleaner and faster:

    $('#contents').hide();
    $('#myDiv').appendTo('body');
    
    0 讨论(0)
  • 2020-12-02 09:08
    $("div").each(function () { $(this).toggle(!!this.id); });
    

    Note that this will explicitly show #myDiv. If you just want to hide the other divs:

    $("div:not(#myDiv)").show();
    

    Then you can do:

    $("#myDiv").appendTo("body");
    
    0 讨论(0)
  • 2020-12-02 09:12

    If you're objective is just to see that content and not see anything else, you can always just do this. You don't need jQuery:

    document.body.innerHTML=document.getElementById('myDiv').innerHTML;
    
    0 讨论(0)
提交回复
热议问题