jQuery selector can\'t select an ID if it contains a . in it.
in my application ID name generates dynamically from usernames.
How can I esca
The official jQuery FAQ has that exact question: How do I select an element by an ID that has characters used in CSS notation? They even have a function to help you escape. Quoting it:
... The colon ("
:") and period (".") are problematic within the context of a jQuery selector because they indicate a pseudo-class and class, respectively.In order to tell jQuery to treat these characters literally rather than as CSS notation, they must be "escaped" by placing two backslashes in front of them.
// Does not work:
$( "#some:id" )
// Works!
$( "#some\\:id" )
// Does not work:
$( "#some.id" )
// Works!
$( "#some\\.id" )
The following function takes care of escaping these characters and places a "#" at the beginning of the ID string:
function jq( myid ) {
return "#" + myid.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
}
The function can be used like so:
$( jq( "some.id" ) )