Подтвердить что ты не робот

Может ли элемент DOM иметь идентификатор, содержащий пробел?

И если да, как вы выбираете on с jQuery? I.e., $("#a b") ищет все <b> узлы в node с id=a.

4b9b3361

Ответ 1

В соответствии с спецификацией HTML 4.0 для базовых типов:

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

И даже если пробелы были действительными, атрибут id с пробелами будет интерпретироваться jQuery как

Ответ 2

Короткий ответ - нет. Буквы, цифры, символы подчеркивания, дефисы, периоды и двоеточия.

(черт, карим избил меня.)

Ответ 3

Хотя это старый вопрос, мне показалось, что я бы поделился информацией о спецификации HTML 5 для тех, кто сталкивался с этим вопросом, как и через несколько лет после его запроса.

В соответствии с HTML 5 Spec:

Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ. Значение не должно содержать пробелов.

В нем также говорится:

Нет никаких других ограничений на то, какую форму может принять идентификатор; в частности, идентификаторы могут состоять только из цифр, начинаться с цифры, начинаться с подчеркивания, состоять только из знаков пунктуации и т.д.

Ответ 4

Это аргумент по аналогии.

Рассмотрим селектор CLASS. Не то же самое, что ID, но есть сходства.

Вы, очевидно, не можете иметь имя класса со встроенным пространством, потому что список классов

<p class='a b c'>some text</p>

нельзя отличить от одного имени с пробелами.

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