jQuery - Sélectionnez tout sauf un seul élément et ses enfants?
Je suis en train de supprimer tout dans le corps entier, à l'exception d'un seul élément et de ses enfants. Comment puis-je y arriver?
Edit 1
Considérons le texte suivant:
<html>
<body>
<div id="div1"></div>
<div id="div2">
<div id="elementNotToRemove"></div>
</div>
<div id="div3"></div>
<div id="div4"></div>
</body>
</html>
Dans l'exemple ci-dessus, je veux supprimer div1, div3 et div4, ainsi que leurs enfants, mais en conservant div2, car il contient l'élément à ne pas supprimer.
source d'informationauteur Mathias Lykkegaard Lorenzen
Vous devez vous connecter pour publier un commentaire.
Vous pouvez remplacer la pas de() de la partie avec tout ce que vous voulez garder
Vous pouvez le faire comme ceci:
Où votre élément a
id="dondelete"
et est un enfant de corps.C'est une vieille question, mais l'on a accepté la réponse est fausse. Il ne fonctionne pas dans cette situation (voir http://jsfiddle.net/LVb3V/ ) et certainement pas comme une solution générale.
Mieux utiliser:
$('body *').not('#div2, #div2 *').remove();
Cela permettra d'éliminer tous les éléments dans le corps, à l'exception de div2 et tous les éléments qu'il contient.
Essayer
http://api.jquery.com/not-selector/
Je pense que
est le moyen le plus facile de se concentrer.
http://jsfiddle.net/6vb2va6g/
Ce code a fonctionné pour moi.
Vous avez besoin de donner de l'espace entre * et : . Plus tôt lorsque vous essayez d'utiliser le code avec
$('body > *:not(#123)').remove()
il n'a pas de travail. J'ai eu à donner de l'espace entre * et caractère:.Heureux de codage.