Opened 11 years ago
Closed 11 years ago
#10270 closed bug (fixed)
(any) attribute selector does not match if value contains '\'
Reported by: | Owned by: | timmywil | |
---|---|---|---|
Priority: | low | Milestone: | 1.next |
Component: | selector | Version: | 1.6.3 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
If an attribute selector value contains '\', it will never match. For instance, given the following input DOM:
<message xmlns='jabber:client' type='groupchat' from='some\[email protected]/juliet' to='[email protected]/garden'> <body></body> </message>
The following selector fails with 1.6.3 (but works with 1.4.4):
$(dom.ownerDocument).find("message[from^='some\[email protected]']")
- jQuery-1.6.3: returns []
- jQuery-1.4.4: returns [dom]
Also tried "=", "*=", "~=", "$=", and "|=" with the same results ("!=" with jQuery-1.6.3 returning [dom] and 1.4.4 returning []).
Change History (7)
comment:1 Changed 11 years ago by
comment:2 Changed 11 years ago by
Sorry, forgot to add platforms affected:
- Chrome 13
- Safari 5.1
- Firefox 6
- IE 8
- IE 9
comment:3 Changed 11 years ago by
Component: | unfiled → selector |
---|---|
Owner: | set to [email protected]… |
Priority: | undecided → low |
Status: | new → pending |
Thanks for submitting a ticket to the jQuery bug tracker. Could you kindly also submit a complete test case on jsFiddle.net that reproduces all of the behaviour you've described? If you can ensure that it covers any of the cases you've mentioned this will make it easier for us to evaluate and confirm the issue across multiple browsers before we discuss how to correct it.
comment:4 Changed 11 years ago by
Status: | pending → new |
---|
jsFiddle test case at <http://jsfiddle.net/HFx3e/1/>.
Also, a potential patch to Sizzle available at <https://github.com/jquery/sizzle/pull/72>.
comment:5 Changed 11 years ago by
Milestone: | None → 1.next |
---|---|
Status: | new → open |
comment:6 Changed 11 years ago by
Owner: | changed from [email protected]… to timmywil |
---|---|
Status: | open → assigned |
comment:7 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Update Sizzle: fixes a bug dealing with backslashes in selectors. Fixes #10270.
Changeset: 868a9cea08579ae635ce258aed3062705a8d2379
It appears that the various preFilter functions unconditionally remove '\' from all parts of the expression, regardless of what follows or in what part of the expression it is.