Hay muchas preguntas sobre Desbordamiento de pila sobre id
frente a class
, pero estas preguntas casi siempre están relacionadas con CSS, y la respuesta generalmente aceptada es utilizar clases para dar estilo a un conjunto particular de elementos e identificadores para instancias específicas. Tiene sentido, es suficiente.¿Es aceptable tener múltiples ID en una página html?
Estoy descubriendo sin embargo que a medida que hago más y más Javascript/jQuery/ajax, ese enfoque está empezando a ser menos claro y estoy encontrando situaciones en las que los elementos semánticamente deberían tener identificadores, pero porque podría haber varias instancias se supone que debo usar clases.
He aquí un ejemplo de lo que quiero decir:
Tome un vistazo a la barra de herramientas en el editor de preguntas de reducción del precio de desbordamiento de pila - cada botón tiene un ID para identificar de manera única. Tiene perfecto sentido: es un botón que realiza una función específica y probablemente haya un guion enganchado a él en función de esa identificación.
Ahora imagine que estoy construyendo una aplicación web rica y hay una página que tiene dos pestañas cada una con un editor de rebajas. ¿Esto significa que los botones de la barra de herramientas ahora deberían estar usando clases a identificarlos?
Esto parece incorrecto.
Otro ejemplo: estoy trabajando en un sitio de galería de fotos que tiene una pequeña barra de herramientas superpuesta en cada foto. La convención dice que debido a que hay varias instancias de estos botones, debería usar clases. De Verdad?
Así que mis preguntas son ....
- Si cometo el crimen de identificadores duplicados en una página, que los navegadores realmente va a romper?
- Para navegadores donde esto se rompe, ¿es solo el estilo CSS el que se romperá, o los selectores jQuery también se romperán?
- ¿Realmente es tan malo usar identificadores duplicados en casos como los descritos?
Awesome question. Había escrito algo redactado mucho peor que esto, y le pegaste al clavo en la cabeza. Me alegro de haberlo encontrado antes de enviarme. –