Ви запитали "як погано". Тож, щоб чітко визначитись (цілком точна) відповідь Роберта Корітника ...
Цей код невірний. Неправильне не виходить у відтінках сірого. Цей код порушує стандарт і тому є неправильним. Це не вдасться перевірити перевірку, і це повинно.
Однак, жоден веб-переглядач, який зараз є на ринку, не скаржиться на це або не матиме жодних проблем. Веб-браузери мають право скаржитися на це, але жодна з нинішніх версій жодної з них наразі не робить. Що не означає, що майбутні версії можуть не поводитися з цим кодом погано.
Ваша поведінка, намагаючись використовувати цей ідентифікатор як селектор, або в css, або в JavaScript, не може використовуватись і, ймовірно, залежить від браузера до браузера. Я припускаю, що можна провести дослідження, щоб побачити, як кожен браузер реагує на це. Я думаю, що в кращому випадку, він би трактував це так само, як "class =", і вибирав їх список. (Це може заплутати бібліотеки JavaScript, - якби я був автором jQuery, я міг би оптимізувати свій селекторний код, так що якщо ви прийдете до мене з селектором, що починається з "#", я очікую на один об'єкт і отримаю список міг би мене повністю перевантажити.)
Він також може вибрати перший, або, можливо, останній, або вибрати жоден з них, або повне збої браузера. Немає способу сказати, не намагаючись.
"Наскільки погано", то повністю залежить від того, наскільки суворо конкретний браузер реалізує специфікацію HTML, і що він робить, коли стикається з порушенням цієї специфікації.
РЕДАКТИ: Я ДІЙСЬКИЙ ДІЙСЬКИЙ ДІЙСЬКИЙ СТАТИЙ Цього сьогодні. Я перетягую різні компоненти від форм пошуку для різних типів об'єктів, щоб створити велику велику утиліту звітності "все в одному" для цього сайту, я завантажую форми пошуку віддалених сторінок у приховані диви і розміщую їх у моїх генератор звітів, коли в якості джерела звіту вибрано відповідний тип сутності. Отже, є прихована версія форми та версія, що відображається в генераторі звітів. JavaScript, який постачався разом із усіма випадками, посилається на елементи за ідентифікатором, яких зараз на ДВІ на сторінці - прихований та відображений.
Що, здається, робить jQuery - це обирати мене ПЕРШИМ, який у всіх випадках - саме той, якого я НЕ хочу.
Я працюю над цим, записуючи селектори, щоб вказати регіон сторінки, в якій я хочу отримати своє поле (тобто: $ ('# containerDiv #specificElement')). Але є одне відповідь на ваше запитання - jQuery в Chrome, безумовно, поводиться особливим чином, стикаючись із цим специфікаційним порушенням.