2016-03-18 1 views
1

я просто сделала тест, и кажется, что приведенный ниже код не будет найти следующие Див <div class="class-name" id="1">Существуют ли ограничения на поиск JS по тегу HTML ID на основе типа?

integer = 1 
$('.class-name#'+integer) 

Однако, когда HTML-код изменяется на это: <div class="class-name" id="number-1">, следующий код будет работать:

integer = 1 
$('.class-name#number-'+integer) 

Просто интересно, если ID должен начинаться с буквы?

+0

Несоответствующие кавычки? – Tushar

+0

http://stackoverflow.com/a/70586/1209018 –

+0

Невозможно воспроизвести btw: https://jsfiddle.net/fjx5k37h/ (при условии действительного кода) –

ответ

0

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

Это ограничение было снято в HTML 5.

Что доктайп вы используете? Возможно, jQuery достаточно умен, чтобы следовать спецификации, если вы используете более старый тип doctype?

+0

Спасибо, я этого не осознавал. Могу ли я спросить, где вы нашли этот источник? – james

+0

HTML-спецификации сами документируют то, что действительно для атрибутов класса и идентификатора. https://www.w3.org/TR/html401/types.html#type-name states "Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв , цифры ([0-9]), дефисы («-»), подчеркивания («_»), двоеточия («:») и периоды («.») ». –

 Смежные вопросы

  • Нет связанных вопросов^_^