web-dev-qa-db-fra.com

L'ID doit-il être unique sur toute la page?

J'utilise jQuery et je me demande simplement si l'ID doit toujours être unique sur toute la page. Je sais que la classe peut être répétée autant de fois que vous le souhaitez, qu’en est-il de la carte d’identité?

37
good_evening

Oui, ça doit être unique.

HTML4:

http://www.w3.org/TR/html4/struct/global.html

Section 7.5.2:

id = name [CS] Cet attribut attribue un nom à un élément. Ce nom doit être unique dans un document.

HTML5:

http://www.w3.org/TR/html5/dom.html#the-id-attribute

L'attribut id spécifie l'identifiant unique (ID) de son élément. La valeur Doit être unique parmi tous les ID de la sous-arborescence de base de l'élément Et doit contenir au moins un caractère. La valeur ne doit pas contenir De caractère espace.

37
FatalError

de mdn enter image description herehttps://developer.mozilla.org/en/DOM/element.id

donc je suppose qu'il vaut mieux être ...

7
Royi Namir

Auparavant, les navigateurs étaient indulgents (css était jeune, il y a de nombreuses années) et permettaient d'utiliser l'identifiant plusieurs fois. Ils sont devenus plus stricts.

Cependant, oui, les identifiants doivent être uniques et utilisés une seule fois.

Si vous devez utiliser le formatage CSS plus d'une fois, utilisez CLASS.

3
cjtech

Oui, les identifiants sont uniques. La classe n'est pas.

1
Michele Spagnuolo

Les identifiants doivent toujours être uniques. 

Tout le monde a un unique numéro d'identification (ex. Numéro de sécurité sociale), et il y a beaucoup de personnes dans un social classe

1
user1116560

C'est fondamentalement le but d'un identifiant. :) Les identifiants sont spécifiques, ne peuvent être utilisés qu'une fois par page. Les cours peuvent être utilisés à votre guise.

1
Bram Vanroy

Janvier 2018, voici Youtube HTML, vous pouvez voir id = "bouton" id = "info" sont dupliqués.

 enter image description here

1
vanduc1102

Avec Javascript, vous ne pouvez faire référence qu’à un seul élément avec ID. document.getElementById et le sélecteur $ de jQuery ne renverront que le premier élément correspondant. Il n’est donc pas logique d’utiliser le même identifiant sur plusieurs éléments.

1
keune

Techniquement, l'ID des normes HTML5 doit être unique sur la page - https://developer.mozilla.org/en/DOM/element.id

Mais j'ai travaillé sur des sites extrêmement modulaires, où cela est complètement ignoré et que cela fonctionne. Et cela a du sens - la partie la plus surprenante.

Nous l'appelons "composant"

Par exemple, vous pourriez avoir un composant sur votre page, qui est une sorte de widget. Il a des choses à l'intérieur avec leurs propres identifiants uniques, par exemple "ok-button"

Une fois que la page contient un grand nombre de ces widgets, vous avez techniquement un code HTML invalide. Mais il est parfaitement logique de composantize vos widgets afin qu'ils référencent chacun en interne leur propre bouton ok, par exemple si vous utilisez jquery pour effectuer une recherche à partir de sa propre racine, il pourrait s'agir de: $widgetRoot.find("#ok-button")

Cela fonctionne pour nous, pensant techniquement que les identifiants ne devraient pas être utilisés du tout, une fois qu'ils ne sont pas uniques.

Comme indiqué ci-dessus, même YouTube le fait, alors ce n'est pas si renégatif

0
PandaWood