Bug Tracker

Opened 8 years ago

Closed 8 years ago

Last modified 7 years ago

#11146 closed bug (invalid)

Exclamation in id selector does not match the matching element

Reported by: aishwar.muthuraman Owned by:
Priority: low Milestone: None
Component: selector Version: 1.7.1
Keywords: Cc:
Blocked by: Blocking:

Description

When an element's id contains an exclamation mark, the jQuery id selector does not match it, while document.getElementById matches it.

See http://jsfiddle.net/MKP43/1/ for example.

e.g. $('#abc!1') will always match nothing.

Change History (5)

comment:1 Changed 8 years ago by aishwar.muthuraman

I did debug this and this will fix it:

Changing

quickExpr

to

/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([^\s][^\s]*)$)/

The above expression satisfies the HTML5 spec for ids: http://dev.w3.org/html5/spec/Overview.html#the-id-attribute

Ids should contain atleast one character and should not contain spaces.

comment:2 Changed 8 years ago by timmywil

Component: unfiledselector
Priority: undecidedlow
Resolution: invalid
Status: newclosed

The exclamation point must be escaped.

http://jsfiddle.net/timmywil/MKP43/2/

comment:3 in reply to:  2 Changed 7 years ago by anonymous

Replying to timmywil:

The exclamation point must be escaped.

http://jsfiddle.net/timmywil/MKP43/2/

I have the same issue! Im trying to use jquery to select a tag with <a href="#">!--</a> inside, and this is not working out.

For example if (a == "!--"){}

comment:4 Changed 7 years ago by anonymous

I have the same issue! Im trying to use jquery to select a tag with <a href="#">!--</a> inside, and this is not working out.

For example if (a == "!--"){}

comment:5 Changed 7 years ago by dmethvin

You should ask for help on the forum!

Note: See TracTickets for help on using tickets.