Comment masquer tous les éléments, à l'exception de l'un à l'aide de jquery?
J'ai de la page HTML:
<head></head>
<body>
<div>
<div>
<div id="myDiv">
</div>
</div>
</div>
</body>
Comment masquer tous les divs, et ont juste la myDiv à l'intérieur du corps à l'aide de jquery?
Mise à jour
La page peut contenir des autres éléments html tels que des tables, des ancres, des p, et je veux juste voir la myDiv élément.
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
Mise à jour:
Si vous souhaitez masquer TOUT ce qui, non seulement
div
éléments, utilisez ceci à la place:Probablement le plus simple est de renvoyer l'ensemble de "masquer" une partie de la page dans un grand conteneur de l'élément, et de cacher que directement.
Comme suit:
Ensuite, vous pouvez tout simplement faire ce qui est plus propre et plus rapide:
$("*").hide(); $("#myDiv").show();
par rapport à$("*:not(#myDiv)")
$('body > :not(#myDiv)').hide()
. Généralement il n'y a pas trop d'éléments qui sont directement sous l'élément du corps. De Plus, comme je le mentionne dans la réponse, c'est encore mieux de simplement les ignorer que de bêtises et aller pour un élément wrapper.Une belle approche générale:
Fonctionne pour n'importe quel type d'élément.
#the_id
de l'élément que vous souhaitez afficher, peu importe la façon dont profondément imbriqués. Leparents()
collection comprend tous les ancêtres (jusqu'récursive). Vous ne pouvez pas cacher l'élément de parents ou de l'élément lui-même serait caché, et vous ne pouvez pas cacher les enfants de l'élément ou de l'élément lui-même aurait pas de contenu (pour les types d'éléments, d'où cette notion s'applique)..siblings().hide().parents().siblings().hide()
Si vous êtes objectif est juste de voir que le contenu et de ne pas voir autre chose, vous pouvez toujours le faire. Vous n'avez pas besoin de jQuery:
Noter que ce sera explicitement montrer #myDiv. Si vous voulez juste pour masquer les autres divs:
Alors vous pouvez faire: