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?
Respuesta
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.
Sí, los ID son únicos. La clase no es
del MDN https://developer.mozilla.org/en/DOM/element.id
así que supongo que es mejor que sea ...
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
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.
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.
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.
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 usargetElementsByTagName
y devolverá una lista de todos los elementos coincidentes.
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
- 1. 'CREATE VIEW' debe ser la única instrucción del lote
- 2. clave única en toda la tabla mysql?
- 3. UUID a la identificación entera única?
- 4. Encontrar la identificación única inferior no utilizada en una lista
- 5. Identificación única de Android
- 6. OutputCache y RenderAction caché toda la página
- 7. ¿Cómo hacer una identificación única en la página con componentes compuestos JSF?
- 8. crear identificación única con javascript
- 9. ¿La identificación del paquete debe ser sensible a mayúsculas y minúsculas?
- 10. enviando el formulario en iframe y redirigiendo toda la página
- 11. ¿Cómo uso updatePanel en asp.net sin refrescar toda la página?
- 12. jQuery Ajax devuelve toda la página
- 13. ¿Cuándo podría la herencia múltiple ser la única solución razonable?
- 14. Generando una identificación única en C++
- 15. OAuthException "(# 210) El sujeto debe ser una página."
- 16. Crear identificación global única en JavaScript
- 17. ¿Cuál es la identificación única para los correos electrónicos?
- 18. ¿En qué casos la superclase no debe ser abstracta?
- 19. ¿Por qué la clase de identificación compuesta debe implementar Serializable?
- 20. ¿Herramienta para minitar HTML en toda la página?
- 21. Efecto de desenfoque en toda la página web
- 22. MVC HTML.RenderAction - Error: la duración debe ser un número positivo
- 23. Identificación única de una actividad de Android
- 24. La salida del programa C debe ir a la consola, pero no debe ser redirigible
- 25. ¿Cuán detallada debe ser la prueba de aceptación del cliente?
- 26. Identificación única de tipos de referencia en el depurador
- 27. clase inmutable debe ser definitiva?
- 28. ¿Cómo se especifica que una combinación de columnas debe ser una restricción única utilizando anotaciones?
- 29. El mejor lugar para la identificación única en DOCX (Open XML WordprocessingDocument)
- 30. ¿La etiqueta raíz de Silverlight debe ser UserControl o Canvas?
un atributo id se utiliza generalmente sólo una vez porque un identificador es único –
No se puede reemplazar la definición de una identificación si usted siente que podría hazlo. –
¿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