puis-je sélectionner #id > #id avec jQuery?
puis-je sélectionner #id > #id avec jQuery?
J'ai eu cette structure
<div id="slide1">
<div id="slide_body">
some content
</div>
</div>
<div id="slide2">
<div id="slide_body">
some content
</div>
</div>
Est-il un moyen de sélectionner, à l'aide de jquery, seule la #slide_body à l'intérieur de #slide1?
Ou est la seule solution pour ajouter l'id de chaque corps div comme
<div id="slide2">
<div id="slide_2_slide_body">
some content
</div>
</div>
OriginalL'auteur Matt Welander | 2013-01-23
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser les Identifiants uniques dans un document
http://www.w3.org/TR/html401/struct/global.html#h-7.5.2
Dans votre exemple, vous pouvez utiliser la classe "slide_body"
Et puis vous pouvez le sélectionner avec
#slide1 .slide_body
ou$("#slide1").find('.slide_body')
merci. J'ai corrigé ça.
OriginalL'auteur Larry Cinnabar
La réponse à la première question:
Vous pouvez en effet faire exactement la même syntaxe
$('#slide1 > #slidebody')
. Le>
caractère descendant direct et est appelé le sélecteur d'enfant (http://api.jquery.com/child-selector/). Si l'élément ne peut pas être un descendant direct mais imbriquées à l'intérieur de quelque chose d'autre vous omettez le>
et jusqu'à la fin avec$('#slide1 #slidebody')
.Comme pour l'extrait de code HTML, la plupart sont corrects en mentionnant que c'est mauvais d'avoir le même id sur les différents éléments, et est considéré comme une défaillance de document.
http://jsfiddle.net/infiniteloops/LzFAr/
OriginalL'auteur Gary.S
Utilisation
OriginalL'auteur Vandana
Votre balise n'est pas valide. Vous ne pouvez pas avoir les deux éléments avec le même ID. Pour cette raison, la réponse est non. L'utilisation de classes à la place.
OriginalL'auteur Paul Fleming
Id doit être unique dans la page. L'utilisation de classes à la place:
Et puis
#slide1 .slide_body
que le sélecteur.class
.Merci pour le spotting, ont fixé la réponse.
OriginalL'auteur Matt Zeunert
Vous pouvez sélectionner comme ça, cependant il est tout à fait superflue
id
attributs doit être unique dans la page. Avec cela à l'esprit, votre code n'est pas valide. Vous devez utiliser unclass
où vous avez besoin d'identificateurs de groupe:Ensuite, vous devez utiliser:
OriginalL'auteur Rory McCrossan
Tout d'abord, il n'est pas très bonne décision d'avoir ou non des identifiants uniques. En dépit de cela, vous pouvez passer contexte en fonction jQuery:
$("#slide_body", "#slide1")
d'accord que c'est une mauvaise décision. Mais connaissez-vous TOUTES les circonstances de l'OP de travail? Si ce balisage généré par le serveur de code et l'OP ne peut pas affecter cette?
Dans un tel scénario, OP devraient être à la recherche d'une solution au vrai problème, dans ce cas de non-identificateurs uniques. Si le serveur de code génère de cette façon, de corriger le code du serveur. Si un tiers composant génère de cette façon, de monter sur le vendeur de modifier le composant. Il n'y a pas d'argument ici. Ne jamais utiliser des Identifiants uniques. Il est invalide.
félicitations, vous gagnez
OriginalL'auteur Yuriy Rozhovetskiy
L'id d'un élément HTML doit être unique. Tour diapositive corps dans une classe.
HTML
Sélecteur de
OriginalL'auteur Kevin Bowersox