Comment cacher tous les éléments sauf un div et son élément enfant en utilisant jQuery? p>
4 Réponses :
Ignore ça, ne semble pas avoir l'effet souhaité.
p> Le problème est que l'état visible d'un enfant divisait souvent sur son parent est visible. Donc, vous devez avoir un arbre entier à la DIV que vous souhaitez rester visible. P> Vous devez tout cacher de cet arbre, l'astuce identifie tous les enfants de la structure DOM qui ne sont pas dans la DIV Ascendance, et tous les frères et sœurs de ceux qui sont. p> enfin! strong> p> réussi à écrire une solution. Essayé une approche récursive au début, mais sur des pages compliquées, elle est morte avec "Trop de récursions", a donc écrit une version à base de liste qui fonctionne très bien. Il se présente sous la forme d'un plugin JQuery à une seule fonction, comme cela semble être l'approche la plus utile. P> Cette routine trouve tous les éléments du contexte Cela permettrait de résultat de la question suivante: P> / Code> (quel paramètre par défaut à
target.parentsUntil(context).andSelf().siblings();
Ça faisait? HMM, doit être particulier à ce cas. En général, il n'est pas infaillible.
Probablement parce que #mydiv code> était un enfant direct de
corps code>. Si tel est le cas, vous pouvez le raccourcir comme celui-ci
$ («Corps»: non (#mydiv) '). Masquer (); Code>. J'ai ajouté une réponse qui fonctionne pour des éléments imbriqués.
@Patrick J'ai ajouté votre réponse après le mien, afin que quiconque lisait ne sautera pas pour l'essayer! Peut-être bien que les gens voient le code illustrant les méthodes impliquées à AnyRate.
Ceci fera cachera tous les éléments enfants à l'intérieur $ (". mydivclass"). pas (this) .hide (); code>
mydivclass code> est la classe donnée à toutes les DIV doit être masqué p>
.MyDivClass code > p> p>
Et si mydivclass code> n'a pas mentionné qu'un seul
maindiv code> avec des éléments et d'autres div .. alors comment se cacher.
@Rafee, je suis un peu confus ... Pouvez-vous expliquer un peu plus
Voulez-vous cacher tous les éléments enfants dans un MAINDIV CODE> et ce
MAINDIV code> a du texte code> code> et d'autres champs d'entrée et d'autres autres divs.
@Mattis évidemment que cela ne fonctionnera pas: si vous cachez le parent de .MyDivClass, alors .MyDivClass sera aussi caché ...
Pour cibler un élément imbriqué et assurez-vous qu'il est le seul montrant, vous auriez besoin de cacher ses frères et sœurs, ainsi que les frères et sœurs de tous ses ancêtres jusqu'au edit: stry> la solution que j'ai ajoutée ci-dessus est un peu plus concise. em> < / p> exemple: strong> http://jsfiddle.net/patrick_dw/gsxya / p>
LOL, votre code génère la même sortie que mon bloc tout-puissant ci-dessus, ne connaissait pas .parentsuntil () code>.
@Orbling - Parfois, une méthode fait toute la différence dans le monde. : o) Je viens de simplifier le mien un peu en utilisant . et) code>.
@ user113716 n'est pas la païensneul («corps») la même chose que les parents ()?
+1 Ces besoins ont été modifiés plus loin si vous utilisez plusieurs sélecteurs, mais cela fonctionne sinon génial.
Solution simple: cacher tout puis montrer celui-ci (dans ce cas le second div et ses enfants).
$('.create-account').children().hide(); $('.create-account>div:nth-of-type(2)').show();
Cela dépend de l'endroit où la cible code> est située dans le balisage HTML.
Peut-être qu'une question plus détaillée serait utile de répondre