¿El atributo id de un elemento HTML tiene que ser único en toda la página?

4 minutos de lectura

avatar de usuario de good_evening
buenas noches

Estoy usando jQuery y me pregunto, ¿la ID tiene que ser siempre única en toda la página? La clase, lo sé, se puede repetir tantas veces como quieras, ¿y la identificación?

  • un atributo de identificación generalmente se usa solo una vez porque una identificación es única

    – Ryan

    26 de febrero de 2012 a las 16:10

  • No puede anular la definición de una identificación si cree que podría hacerlo.

    – Narayana Nagireddi

    26 de febrero de 2012 a las 16:21


Avatar de usuario de FatalError
Error fatal

Sí, debe ser único.

HTML4:

https://www.w3.org/TR/html4/struct/global.html#h-7.5.2

Sección 7.5.2:

identificación = nombre [CS]
Este atributo asigna un nombre a un elemento. Este nombre debe ser único en un documento.

HTML5:

https://www.w3.org/TR/html5/dom.html#element-attrdef-global-id

El atributo id especifica el identificador único (ID) de su elemento. El valor debe ser único entre todos los ID del subárbol de inicio del elemento y debe contener al menos un carácter. El valor no debe contener caracteres de espacio.

  • entre todos los ID en el elemento subárbol de inicio.” Subárbol. Sí, sub-árbol.

    – Константин Ван

    26 de enero de 2021 a las 18:26

Avatar de usuario de Константин Ван
Константин Ван

¿Un ID tiene que ser único? en toda la pagina?

No.

Porque el Estándar de vida HTML del 15 de marzo de 2022, dice claramente:

El class, idy slot Los atributos se pueden especificar en todos elementos HTML. ……. Cuando se especifica en elementos HTMLel id el valor del atributo debe ser único entre todos los identificaciones en el elemento árbol y debe contener al menos un carácter. El valor no debe contener ninguna espacios en blanco ASCII.

y una página puede tener varios árboles DOM. Lo hace, por ejemplo, cuando ha adjuntado (Element.attachShadow()) a árbol DOM sombra a un elemento.

Un árbol de documentos y sus árboles de sombra subyacentes


TL; DR

¿Un ID tiene que ser único? en toda la pagina?

No.

¿Un ID tiene que ser único? en un árbol DOM?

Sí.

Avatar de usuario de Royi Namir
Royi Namir

de mdn ingrese la descripción de la imagen aquí
https://developer.mozilla.org/en/DOM/element.id

así que supongo que será mejor…

Avatar de usuario de PandaWood
PandaMadera

Técnicamente, según los estándares de HTML5, el ID debe ser único en la página: https://developer.mozilla.org/en/DOM/element.id

Pero he trabajado en sitios web extremadamente modulares, donde esto se ignora por completo y funciona. Y tiene sentido, la parte más sorprendente.

Lo llamamos “componentización”

Por ejemplo, podría tener un componente en su página, que es algún tipo de widget. Tiene cosas adentro con sus propias identificaciones únicas, por ejemplo, “botón ok”.

Una vez que hay muchos de estos widgets en la página, técnicamente tiene HTML no válido. Pero tiene mucho sentido para componer sus widgets para que cada uno, internamente, haga referencia a su propio botón Aceptar, por ejemplo, si usa jquery para buscar desde su propia raíz, podría ser: $widgetRoot.find("#ok-button")

Esto funciona para nosotros, aunque técnicamente no se deben usar identificaciones, una vez que no son únicas.

Como se mencionó anteriormente, incluso YouTube lo hace, por lo que no es tan renegado.

Ene 2018, aquí está Youtube HTML, puedes ver identificación = “botón” id=”información” están duplicados.

ingrese la descripción de la imagen aquí

  • Difícilmente debería considerar la salida de sitios web grandes y dinámicos como ejemplos a priori de “código válido”.

    –Bram Vanroy

    28 mayo 2021 a las 10:52

  • Votación negativa. El hecho de que YouTube salte de un puente no significa que debamos hacerlo.

    – Will Lanni

    4 de junio de 2021 a las 0:52

Avatar de usuario de Bram Vanroy
bram vanroy

Ese es básicamente el objetivo de una identificación. 🙂 Los ID son específicos, solo se pueden usar una vez por página. Las clases se pueden utilizar como se desee.

  • Difícilmente debería considerar la salida de sitios web grandes y dinámicos como ejemplos a priori de “código válido”.

    –Bram Vanroy

    28 mayo 2021 a las 10:52

  • Votación negativa. El hecho de que YouTube salte de un puente no significa que debamos hacerlo.

    – Will Lanni

    4 de junio de 2021 a las 0:52

avatar de usuario de cjtech
cjtech

Los navegadores solían ser indulgentes con esto (hace muchos años cuando css era joven) y permitían que la ID se usara más de una vez. Se han vuelto más estrictos.

Sin embargo, sí, las identificaciones deben ser únicas y solo se deben usar una vez.

Si necesita usar el formato css más de una vez, use CLASS.

¿Ha sido útil esta solución?