¿Cuáles son los caracteres legales para una identificación de elemento HTML?

¿Qué caracteres puedo usar en un identificador para un elemento HTML?

Por ejemplo:

<SPAN id="section[5]" ...>

(O más bien, ¿debo atenerme a ciertos caracteres para asegurarme de que la id funcione en todos los principales browseres / motor de JavaScript).

6 Solutions collect form web for “¿Cuáles son los caracteres legales para una identificación de elemento HTML?”

En HTML5, las únicas restricciones son que la ID debe ser única dentro del documento, contener al less un carácter y no contener espacios. Ver http://www.w3.org/TR/2014/REC-html5-20141028/dom.html#the-id-attribute

Como otras respuestas han señalado, HTML 4 es más restrictivo y especifica que

Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos (".").

En HTML 4, el atributo id contiene un token NAME que están definidos :

Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos (".").

Como se señaló en una publicación anterior, dependiendo de su implementación, puede tener problemas con dos puntos y puntos junto con otros: ¿Cuáles son los valores válidos para el atributo de ID en HTML?

De http://www.w3.org/TR/html4/types.html :

Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos (".").

Todas las respuestas anteriores + ID deben ser únicas

De la especificación HTML4 :

Los tokens de ID y NAME deben comenzar con una letra ([A-Za-z]) y pueden ir seguidos de cualquier cantidad de letras, dígitos ([0-9]), guiones ("-"), guiones bajos ("_") , dos puntos (":") y puntos (".").

de hecho, puedo usar con éxito un ° también, por ejemplo

<span id = "test °" />

Parece que está permitido, y no tengo ningún problema con jQuery u otras forms de recuperar elementos dom a través de los selectores. Tal vez otros caracteres funcionan, pero no los probé todos.

  • Necesita un div posicionado fijo dentro de un div posicionado
  • ¿Trucos para evitar que el teléfono se quede dormido en el browser web mobile usando JavaScript / HTML?
  • Menú basado en pestaña horizontal con tabs de desplazamiento
  • isset en jQuery?
  • ¿Hay un HTML opuesto a <noscript>?
  • Carga de varios files a Google Drive con Google App Script
  • Cómo llamar a la function JavaScript en lugar de href en HTML
  • llamar a la function javascript desde la label ancla html
  • DOM Exception al asignar entidades HTML a innerHTML
  • Desplácese a un div específico
  • Haz que la barra de navigation ocupe toda la altura de la página en css
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.