Bug Tracker

Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#3102 closed enhancement (fixed)

jquery.eq() wrong behaviour if passed string

Reported by: stevef_ Owned by: flesler
Priority: minor Milestone: 1.3
Component: core Version: 1.2.6
Keywords: eq Cc:
Blocked by: Blocking:

Description

Copy of ticket #3051, cant believe this was closed!

This wasted a good few hous of my time, surely a string check could be done here to avoid this causing problems for other people in the future.

I would rather see an error thrown rather than a jq object containing multiple results, this is really dangerous behaviour especially if your chaining and inadvertinly set many attributes instead of the one desired.

From 1.2.6 source:

443 eq: function( i ) { 444 return this.slice( i, i + 1 ); 445 }

This works fine when passed an integer. Selects a range when passed a string. For example:

.eq("1")

passes ("1", "11") to slice instead of (1, 2).

Change History (5)

comment:1 Changed 11 years ago by flesler

Owner: set to flesler
Status: newassigned
Type: bugenhancement

Ok, just figured a small fix, only one extra byte.

comment:2 Changed 11 years ago by flesler

Resolution: fixed
Status: assignedclosed

Applied the change at [5754].

comment:3 Changed 11 years ago by Markus.Staab

should be easy to have a unit test for this little bug..

comment:4 Changed 11 years ago by Markus.Staab

Resolution: fixed
Status: closedreopened

comment:5 Changed 11 years ago by flesler

Resolution: fixed
Status: reopenedclosed

Ok, added one simple test at [5755]. That should be enough.

Note: See TracTickets for help on using tickets.