Числа в качестве идентификатора на веб-страницах не работают!

#jquery #firefox

#jquery #firefox

Вопрос:

Мне просто интересно, почему мое событие jquery не запускается в FireFox, когда я использую числовые значения в своих тегах ID

Нравится ($"#2").live .....

и <div id='2' .....

я заметил, что события не запускаются таким образом и только в FireFox. Любые объяснения приветствуются.

Комментарии:

1. Потому что числа не являются допустимыми первыми символами для атрибутов id или class .

2. Из любопытства, был ли ответ на этот вопрос удовлетворительным для вас? Или у вас возникли дополнительные проблемы?

Ответ №1:

Маркеры идентификатора и ИМЕНИ должны начинаться с буквы ([A-Za-z]) и могут сопровождаться любым количеством букв, цифр ([0-9]), дефисов («-«), подчеркиваний («_»), двоеточий («:») и точек («.»). Цитата: ссылка на html 4 в W3.

Таким образом, ваш id недопустим, поскольку он начинается с числового символа.

Однако в HTML 5 id требуется только иметь:

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

Комментарии:

1. Я второй в этом посте. idName-1, idName-2 и др. возможно, это подходящая схема именования. Затем я бы использовал регулярное выражение для анализа такой строки. например, так: //установить регулярное выражение var re = /(^w -) ( d ) $/i; //разбить attr на части var str = $(this).attr(‘id’).match(re)[1], id = $(this).attr(‘id’).match(re)[2];

Ответ №2:

Недопустимо HTML4 иметь идентификаторы, начинающиеся с числа.

Вы должны начинать их с буквы.

Однако в HTML5 разрешены числовые идентификаторы.

Ответ №3:

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

Ответ №4:

Это действительно зависит от того, что ($"#2") делает. Например, если он передается #2 на querySelector вызов, это приведет к сбою, потому что это недопустимый CSS-селектор.

Я подозреваю, что вы используете какую-то библиотеку, которая делает что-то подобное; это может работать в других браузерах из-за ошибок в их анализаторах выбора CSS или из-за того, что библиотека прослушивает браузер и не запускает тот же код в этих других браузерах.