Статьи

Селектор jQuery ссылается на элементы CSS, почему?

Привет, ребята, у меня недавно был этот вопрос, поэтому подумал, что поделюсь им с вами!

Вопрос

«Селектор jQuery ссылается на элементы CSS, почему?»

Ответ

Элементы jQuery могут включать в себя схемы именования CSS в идентификаторах, и они могут интерпретироваться как нотация CSS
(особенно при использовании двоеточий «:» и точек «.»). Атрибуты jQuery ID могут содержать точки, двоеточия, буквы, цифры, дефисы и подчеркивания. Ответ заключается в том, чтобы убежать от этих персонажей, поместив перед ними две обратные косые черты.

Например:

// Does not work
$("#some:id")
 
// Works!
$("#some\:id")
 // Does not work
$("#some.id")
 
// Works!
$("#some\.id")

Исправить это с помощью функции!

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

//usage:
$( jq('some.id') )