Как я выбираю элемент по ID, который имеет символы, используемые в нотации CSS?

Когда jQuery использует синтаксис CSS для того, чтобы выбирать элементы, некоторые символы интерпретируются как нотация CSS.

Например, атрибуты ID, после первой буквы (a-z или A-Z), могут также использовать периоды и двоеточия, в дополнение к буквам, числам, дефисам и подчеркиваниям (см. W3C Основные Типы данных HTML). Двоеточие (": ") и период (". ") проблематичны в контексте селекторов jQuery, потому что они указывают псевдокласс и класс, соответственно.

Чтобы заставить jQuery обрабатывать эти символы буквально, а не как нотацию CSS, они должны быть выделены, размещая две наклонных черты слева от них.

Не работает:

$( "#some:id" )

Работает!

$( "#some\\:id" )

Не работает:

$( "#some.id" )

Работает!

$( "#some\\.id" )

Следующая функция заботится о выделении этих символов и помещает "#" в начале строки ID:

function jq( myid ) { return "#" + myid.replace( /(:|\.|\[|\])/g, "\\$1" ); }

Функция может использоваться например так:

$( jq( "some.id" ) )

Далее: Объединение в цепочку jQuery

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)