jQuery dot in ID selector?
JqueryJquery SelectorsJquery Problem Overview
> Possible Duplicate:
> How to select html nodes by ID with jquery when the id contains a dot?
I have a website that contains elements similar to this:
<p id="root.SomeCoolThing">Some Cool Thing</p>
I can not select the paragraph with jQuery like $('#root.SomeCoolThing')
because jQuery thinks, SomeCoolThing
is the class of an element with id="root"
.
How can I select this element with jQuery? I would like to avoid a construction like this:
$(document.getElementById('root.SomeCoolThing'))
Jquery Solutions
Solution 1 - Jquery
Use the escaping rules from the jQuery selectors API as follows:
$('#root\\.SomeCoolThing')
From the docs:
> To use any of the meta-characters (such as
> !"#$%&'()*+,./:;<=>?@[\]^`{|}~
) as a literal part of a name, it must
> be escaped with with two backslashes: \\
. For example, an element with
> id="foo.bar"
, can use the selector $("#foo\\.bar")
.
Solution 2 - Jquery
Using attr works:
$('p[id="root.SomeCoolThing"]')
Solution 3 - Jquery
You need to escape special chars:
$('#root\\.SomeCoolThing')
docs: >If you wish to use any of the meta-characters ( such as !"#$%&'()*+,./:;<=>?@[]^`{|}~ ) as a literal part of a name, you must escape the character with two backslashes: \\. For example, if you have an element with id="foo.bar", you can use the selector $("#foo\\.bar").
Solution 4 - Jquery
You can escape period using something like this
$("#root\\.SomeCoolThing")
https://stackoverflow.com/questions/350292/how-do-i-get-jquery-to-select-elements-with-a-period-in-their-id http://groups.google.com/group/jquery-en/browse_thread/thread/ba072168939b245a?pli=1
Solution 5 - Jquery
Shooting from the hip here, but if you cannot change the ID of the element, try using this selector:
$("p[id=root.SomeCoolThing]")
Solution 6 - Jquery
Use two backslashes before each special character
$('#root\\.SomeCoolThing')