Utilisation de jQuery pour obtenir les descendants d'un élément qui ne sont pas les enfants d'un conteneur avec une certaine classe CSS
J'ai une situation dans laquelle j'ai besoin de sélectionner tous les descendants d'un certain élément, mais exclure ceux qui sont les enfants d'un conteneur, qui correspond à la classe CSS du conteneur-je faire fonctionner mon sélecteur sur.
Assez compliqué description.
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
<div class="element">
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
</div>
De l'exécution d'un jQuery .find('.élément") sur la plupart des DIV obtenez-moi tous les DIVs, même ceux à l'intérieur de la deuxième conteneur. C'est ce que j'essaie d'éviter.
Est-il un moyen rapide et simple sélecteur jQuery solution pour ce cas?
- Pouvez-vous m'éléments que vous souhaitez utiliser?
- Dans ce cas, les 4 DIVs au niveau 1 avec la classe "elément"
Vous devez vous connecter pour publier un commentaire.
Je pense que ce que vous voulez utiliser est le pas sélecteur. Comme cela..
Alternativement, vous pouvez utiliser le les enfants sélecteur d'obtenir les enfants à partir de un niveau profond. Qui aurait exlclude les divs imbriqués.
À être un peu plus explicite, je pense que vous aurez envie d'utiliser le pas de sélecteur d'après vous, utilisez la fonction 'rechercher'. Comme ceci:
Vous pouvez passer d'une fonction à pas, de sorte que vous pourriez avoir cette fonction regarde les parents de chaque élément de match pour voir si elle est imbriquée à l'intérieur d'un élément avec la même classe.
http://jsfiddle.net/QXfs2/6/
Si vous pouviez ajouter une classe imbriquée conteneur, ce serait idéal, c'est tout simplement:
En supposant que vous avez ajouté à la classe des "imbriqués", à l'intérieur de la div conteneur.
Pour votre exemple, ce serait le travail -
Qui ne pourront qu'être le premier élément de la vrd. Si votre élément de la collection a été dans une structure différente, vous pourriez substituer
body
avec la collecte du numéro du conteneur.Démo - http://jsfiddle.net/QAP37/
Vous pouvez utiliser le sélecteur jquery comme ceci:
J'ai trouvé le suivant un peu plus succincte et générale de la réponse choisie. Il fonctionne avec arbitrairement profondément imbriqués les arbres:
où:
container
est l'objet jQuery pour la racine "conteneur" divelementSelector
est le sélecteur jQuery pour l'élément,.element
dans ce cascontainerSelector
est le sélecteur jQuery pour le conteneur,.container
dans ce casDonc ce retrouve tous les éléments sous le récipient initial, puis pour chaque élément vérifie si le plus proche de son conteneur est le récipient initial ou une autre conteneur imbriqué. Si le plus proche de son conteneur est un conteneur imbriqué, il le jette dehors, de sorte que vous êtes juste à gauche avec des descendants qui ne sont pas dans un autre récipient.
Très pratique pour des choses comme la répétition multi-élément, imbriqués les champs de formulaire.