Est-il normal d'avoir deux éléments avec le même identifiant dans deux éléments div avec un autre id: mis à jour
je sais, que deux éléments ne peuvent pas le vha le même id. Mais il arrive donc que, dans mon projet, j'ai deux éléments ayant le même id dans d'autres divs, à l'instar de ce
<div id="div1">
<img id="loading" />
</div>
<div id="div2">
<img id="loading" />
</div>
et css:
#div1 #loading
{
some style here...
}
#div2 #loading
{
another style here...
}
fonctionne très bien pour moi, mais peut-être qu'il n'est pas recommandé de faire en sorte?
Grâce
Mise à JOUR
Oui, je sais, que je peux utiliser les classes, et il est fortement recommandé de faire en sorte, mais je veux savoir est-il un risque potentiel dans cette utilisation de l'id?
je pense que non, parce que quand j'ai écrit par exemple
$("#div1 #loading")...
il devient un élément unique.
n'est-ce pas?
Dernière Mise À Jour
Utilisation suggérée-principe, si vous avez des raisons de le faire! 😉
source d'informationauteur Simon
Vous devez vous connecter pour publier un commentaire.
De changer votre id de classe. Ce n'est pas une bonne idée de donner des id en double.
Pense que deux élèves ayant le même rouleau pas dans une classe. Imaginer des résultats d'examen. Comment l'école être capable de reconnaître les marksheet?
Votre chemin n'est pas de la croix-navigateur compatible, et aura une incidence sur un grand nombre tout en codant du JavaScript, et posté forme etc
Vous pouvez obtenir le même effet en utilisant la classe
voir
et css:
un id doit (devrait) être unique!!
vous avez des ennuis en le sélectionnant via JS dans la plupart des navigateurs -
une meilleure utilisation de la classe
La grande raison est pour le JavaScript de manipulation du DOM. Dans votre cas, si vous faites quelque chose comme cela...
... JavaScript pour retourner le premier élément, et le premier élément seulement. Vous n'aurez aucun moyen d'avoir accès au reste d'entre eux sans une grave DOM marche.
Juste parce que personne ne l'a posté il - la spécification HTML, la section sur l'IDqui dit:
Oui, vous avez raison, il n'est pas conseillé de le faire. Un ID doit toujours être unique (par exemple, si vous souhaitez sélectionner l'élément en javascript).
Si vous souhaitez simplement ajouter le même style pour les divs, il suffit d'utiliser la classe css.
Unique:
#div1 #loading
ne permet pas de remédier au fait que vous avez deux instances de#loading
dans votre document. Alors, non, ne le faites pas.Id doit être unique, id1 et id2 sont très bien, mais pour de nombreux éléments avec le même style, utiliser une classe HTML et CSS sélecteur de classe:
Ces sont autorisés à être répétée autant de fois que vous le souhaitez sur une page 🙂
Est-ce normal? No.
Est-il recommandé? Certainement pas! Il est effectivement interdit (mais l'exécution est faible).
Mais (apparemment) fonctionne, donc ...
Id sont utilisés pour distinguer les éléments, ils doivent être uniques pour des raisons différentes, l'une d'elles est l'utilisation de javascript, une fonction comme getElementById ne fonctionne pas bien si vous avez des ID, vous ne serez pas en mesure de prédire ce qu'il va faire sur d'autre navigateur que JS est auto-mis en œuvre sur chaque navigateur différemment.
Si vous souhaitez utiliser une structure comme celle - #div de chargement et de #div2 de chargement, il semble clair que les deux de chargement ont des usages similaires de sorte qu'ils devraient être des classes et serait utilisé comme cela
#div1.le chargement et le #div2.chargement
Également un avantage de l'utilisation de cette syntaxe serait de mettre le style dans .chargement comme ce
.chargement{ style commun à la fois le chargement }
#div1.chargement{ style utilisé uniquement par le chargement en div1 }
#div2.chargement{ style utilisé uniquement par le chargement en div2 }
https://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#adef-id
MAIS!
Si vous en avez besoin dans votre projet, vous pouvez l'utiliser, comme suggéré dans mon Question de la mise à Jour Finale!
validation et puriste-ism de côté, il est parfaitement fonctionnel. Mais je serais certainement ennuyé si j'utilise que le numéro id de chargement et de trouver que jquery effet ou un css effet s'applique à plus de 1 élément.Dites-moi si IE6 ou 7 ou Firefox 1.x ou 2.x ruines de ce code.
C'est une mauvaise pratique de l'aide que j'avais sur l'élément. Parce que je voudrais donner quelque chose pour la compréhension unique avec leur nom d'identification. Et la deuxième chose que nous utilisons le CSS mais en JavaScript cette mauvaise pratique. Donc bon exemple de cette classe et de l'élève.
Afin de ne pas le faire.
Je suis en désaccord sur les gens disent toujours utiliser un "unique", ce qui signifie ID différent à chaque fois que vous l'étiquette. Parfois, c'est acceptable, comme mon cas où je fais une calculatrice.
Le javascript est de faire le calcul et de la sortie des résultats dans le div avec l'id="total". J'ai besoin de la même exacte "total" pour être dans 2 endroits différents. Dans ce cas, pourquoi n'aurais-je pas utiliser deux div avec le même ID? J'ai besoin du même nombre dans les deux zones. Avec jQuery, j'ai effectuer et de sortie, les maths, une fois et il remplit les deux div en même temps, qui est ce que je veux.
Aussi longtemps que vous comprenez les risques dans la mesure où si vous étiez en le TIRANT de l'information à partir de ces 2 div avec le même ID, puis-je dire de se sentir libre. Tant que vous ne confondez-vous et besoin de 2 des résultats différents dans la même div ID.