如何隐藏除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");