如何隐藏除jQuery以外的所有元素?

我有HTML页面:

<head></head> <body> <div> <div> <div id="myDiv"> </div> </div> </div> </body> 

如何隐藏所有的div,并只使用jQuery的身体内的myDiv?

更新

该页面可能包含一些其他的HTML元素,如一些表格,锚点,p,我只想看到myDiv元素。

这应该工作:

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

更新:

如果你想隐藏一切,不只是div元素,而是使用它:

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

可能更简单的是将整个页面的“可隐藏”部分包装在一个大容器元素中,然后直接隐藏它。

像这样:

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

那么你可以做到这一点,这是更清洁和更快:

 $('#contents').hide(); $('#myDiv').appendTo('body'); 

一个很好的一般方法:

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

适用于任何元素types。

如果你是客观的只是看到内容而不看其他东西,你总是可以做到这一点。 你不需要jQuery:

 document.body.innerHTML=document.getElementById('myDiv').innerHTML; 
 $("div").each(function () { $(this).toggle(!!this.id); }); 

请注意,这将明确显示 #myDiv。 如果你只是想隐藏其他div:

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

那你可以这样做:

 $("#myDiv").appendTo("body");