2013-04-08 5 views
1

Мне нужно выбрать элемент, его идентификатор назначен mysql, он выглядит так: id="Monza (Italien)5" он отлично работает для других элементов, потому что есть только одно имя, но в этом случае это название города, а затем название страны. Я попытался выбрать, как это $('#Monza'), но это не сработало.Элемент jquery select с более чем одним идентификатором

ответ

3

Не используйте пробелы или скобки, они не являются действительными для атрибута ID

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

и разница между HTML 4.01 и HTML5:

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

HTML5 избавляется от дополнительных ограничений на атрибут id. Задачи оставлены только в том случае, если они уникальны в документе - что значение должно содержать хотя бы один символ (не может быть пустым), и что он не может содержать пробелов.

Но вы можете попробовать, если у вас нет больше выбора:

$("div[id='Monza (Italien)5']") 

В отличие от $('#id'), это будет возвращать несколько элементов, если у вас есть несколько элементов с одинаковыми идентификаторами в пределах вашей страницы


Похоже, что выше селектор не работает, вам нужно вручную вывести недопустимые символы здесь, чтобы он работал:

$("#Monza\\ \\(\\ Italien\\ \\)5") 

Working Demo

+1

HTML5 устраняет почти все эти ограничения: http://www.w3.org/TR/html-markup/global-attributes.html#common.attrs.id – Blender

+0

Я попробовал вас, но это не сработало. – TooCooL

+0

@TooCooL check my edit :) – Eli

0

У Id не должно быть пробелов между ними, проверьте его here. Вы можете использовать некоторый символ, например _, чтобы присоединиться к идентификационным частям.

Изменить

id="Monza (Italien)5" 

В какой-то вещи, как

id="Monza_Italien_5" 
+0

Причина на голос? – Adil

4

Вы можете быть в состоянии использовать селектор атрибута:

$('*[id="Monza (Italien)5"]') 

The spec говорит, что атрибут id не может содержать пробелы, так что я бы исправить HTML. Браузеры могут не взаимодействовать, если ваш HTML недействителен.

+0

Любая причина для '*'? Просто интересно – Ian

+0

@Ian: Не совсем. Мне кажется странным, если нет элемента. – Blender

+0

Ха-ха, я не был уверен, что я что-то забыл ... Я просто никогда раньше не использовал его в этом сценарии :) – Ian

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