#9022 closed bug (worksforme)
Negative eq() in IE does not return null
Reported by: | Motty | Owned by: | Motty |
---|---|---|---|
Priority: | low | Milestone: | 1.next |
Component: | traversing | Version: | 1.5.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
I found a problem in older IE browsers (pre-IE9) where using a ":eq(n)" selector, where "n" is negative, returns ":eq(0)". This occurs in all jQuery versions except 1.2.6.
Here is a demo of the problem
Change History (5)
comment:2 Changed 12 years ago by
Component: | unfiled → traversing |
---|---|
Owner: | set to Motty |
Status: | new → pending |
A simpler reduction: http://jsfiddle.net/rwaldron/TuRNp/3/
Can someone with appropriate browsers test this?
Also, just in case it wasn't clear, if you have one element, 0 is the same as -1
comment:3 Changed 12 years ago by
Status: | pending → new |
---|
In the simpler reduction demo, this also returns true:
$test.eq(null).length === 1 // true
- IGNORE THIS, IT WORKS AS INTENDED! *
comment:4 Changed 12 years ago by
Priority: | undecided → low |
---|---|
Resolution: | → worksforme |
Status: | new → closed |
Thanks for the clarification, much appreciated.
According to the api docs, eq() accepts only integers: http://api.jquery.com/eq
comment:5 Changed 12 years ago by
Hiya.. sorry, I need to clarify. I shouldn't have added in the ".eq()" examples as I forgot about how it treats negative integers. But :eq() acts completely different and does not work with negative integers!
If I use ":eq(n)" in modern browsers, negative integers return null
$test.filter(':eq(-1)') // returns null
In IE8 and older, it returns the element ':eq(0)'.
$test.filter(':eq(-1)') // returns $test.filter(':eq(0)')
Here is a test example to clarify... run it in IE
Oh, I also found that using ".eq(-1)" also messes up, so far, in IE, Firefox and Chrome. I haven't tested the other browsers.
Updated demo
* IGNORE THIS, THIS WORKS AS INTENDED! *