2012-02-26 11 views
22

Estoy usando jQuery y me pregunto si el ID debe ser siempre único en toda la página. La clase, lo sé, se puede repetir tantas veces como quiera, ¿qué pasa con la identificación?¿La identificación debe ser única en toda la página?

+1

un atributo id se utiliza generalmente sólo una vez porque un identificador es único –

+1

No se puede reemplazar la definición de una identificación si usted siente que podría hazlo. –

+3

¿por qué todos votan esta pregunta? Puedo ver que es simple, pero esa no es una razón para votar, solo debes seguir adelante ... – nodrog

Respuesta

29

Sí, debe ser único.

HTML4:

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

Sección 7.5.2:

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

HTML5:

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

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

0

Sí, los ID son únicos. La clase no es

2

identificaciones siempre tienen que ser único.

Todo el mundo tiene un número de identificación único (número de Seguro ex. Social), y hay un montón de personas en un contexto social clase

1

eso es básicamente todo el sentido de una identificación. :) Los ID son específicos, solo se pueden usar una vez por página. Las clases se pueden utilizar como contento.

2

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

Sin embargo, sí, los ID deben ser exclusivos y solo deben usarse una vez.

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

1

Con Javascript, solo puede hacer referencia a un elemento mediante ID. document.getElementById y el selector $ de jQuery devolverá solo la primera coincidencia de elementos. Por lo tanto, no tiene sentido usar la misma ID en múltiples elementos.

-1

Hay excelentes respuestas para la misma pregunta en https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really.

One tidbit not mentioned above es que si hay varios idéntica id s uno la misma página (lo que ocurre, a pesar de que viola la norma):

Si usted tiene que trabajar alrededor de este (que es triste), puede use $("*#foo") que convencerá a jQuery de usar getElementsByTagName y devolverá una lista de todos los elementos coincidentes.

1

Ene 2018, aquí es Youtube HTML, se puede ver id "botón" = están duplicados id = "info".

enter image description here

0

Técnicamente, por HTML5 estándares ID debe ser único en la página - https://developer.mozilla.org/en/DOM/element.id

pero he trabajado en los sitios web muy 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 una especie de artilugio. Tiene cosas adentro con sus propios ID únicos, por ejemplo, "ok-button"

Una vez que hay muchos de estos widgets en la página, técnicamente tiene un HTML no válido. Sin embargo, hace perfecto sentido para componentizar sus widgets de manera que cada uno de ellos, a nivel interno, hacen referencia a su propio botón OK por ejemplo, si se utiliza jQuery para buscar desde su propia raíz podría ser: $widgetRoot.find("#ok-button")

Esto funciona para nosotros, pensado técnicamente identificadores no debe utilizarse en absoluto, una vez que no son únicos.

Como situada por encima, incluso YouTube hacerlo, así que no es tan renegado

Cuestiones relacionadas