¿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.

  • ¿Cómo funciona este sitio (allaboutrajni) solo cuando te desconectas? (desconectarse de internet)
  • Borrar div antes de agregar
  • El file jquery detiene el título de la página
  • ¿Cómo abrir una página web dentro de una aplicación iOS con phonegap?
  • ¿Por qué durante la animation entre dos 'div' hay un espacio vacío?
  • Abrir window emergente en la position clicada
  • Cambia el tamaño del text dinámicamente para rellenar div
  • Cómo aplicar el evento onclick a la label html cuando se muestra en un bucle
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.