Почему я не могу иметь числовое значение в качестве идентификатора элемента? - PullRequest
17 голосов
/ 03 ноября 2011

Работая над проектом, почти закончил и просто приводил в порядок HTML, и я обнаружил, что на самом деле вам не разрешено иметь идентификатор, который является просто числом -

атрибут "id" имеет недопустимое значение "567". Идентификатор атрибута имеет тип ID. Как описано выше, оно должно начинаться с буквы и не должно содержать пробелов

Good    <a id="567" href="/index.html">
Good    <a id="n567" href="/index.html">

Я могу пройтись по своему коду и добавить букву, а затем убрать ее, когда значение используется в моем jQuery, но это будет мешать, мне на самом деле не нужно.

Есть ли причина, по которой я не должен использовать номера в качестве идентификаторов?

Ответы [ 2 ]

29 голосов
/ 03 ноября 2011

Это именно то, что сказано в спецификации.

Из спецификации HTML 4 :

ID и NAME токены должны начинаться с буквы ([A-Za-z]) и могут сопровождаться любым количеством букв, цифр ([0-9]), дефисов ("-"), подчеркиваний ("_"),двоеточия (":") и точки (".").

Хорошая новость заключается в том, что спецификация HTML 5 более мягкая:

Атрибут id указывает уникальный элемент (ID) его элемента .Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ.Значение не должно содержать пробелов.

12 голосов
/ 03 ноября 2011

Почему я не могу иметь числовое значение в качестве идентификатора элемента?

Потому что это то, что диктует спецификация HTML4 .


С другой стороны, спецификация HTML5 сняла это требование .

...