Skip to main content

Bug Tracker

Side navigation

#4621 closed bug (invalid)

Opened May 04, 2009 04:26PM UTC

Closed December 02, 2010 08:07AM UTC

filter("...:first") expands original selector

Reported by: zaphod_41 Owned by: zaphod_41
Priority: major Milestone: 1.3.2
Component: selector Version: 1.3.2
Keywords: filter() Cc:
Blocked by: Blocking:
Description

I create a selector, then filter() that selector and put

a length check on the end to see if anything matches, eg

var jSelector = $("foo");

if (jSelector.filter("bar").length > 0) ...

Which works fine.

I was hoping I could avoid jQuery filtering the entire

selector, by sticking a ":first" on the end of the filter

(ie "hey, stop filtering on the first one you find"), eg

if (jSelector.filter("bar:first").length > 0) ...

What happened is that, even though the original selector

found no matches (length ==0), the added filter suddenly returned a match (length == 1).

var jNewRows =

$("#table tr:has(td[id$=status] :contains('New'))");

--- console.log(jNewRows) sez []

var a =

jNewRows.filter("td[id$=volume] input[value]");

--- console.log(a) sez []

var b =

jNewRows.filter("td[id$=volume] input[value]:first");

--- console.log(b) sez [input#...] (single entry)

John Finlay

ThoughtWorks

(403-613-7008)

Attachments (0)
Change History (2)

Changed November 17, 2010 02:56AM UTC by dmethvin comment:1

owner: johnzaphod_41
status: newpending

I was going to try and create a test case myself but the markup seems like it may be complext. Please create a complete jsfiddle case with the html.

Changed December 02, 2010 08:07AM UTC by trac-o-bot comment:2

resolution: → invalid
status: pendingclosed

Automatically closed due to 14 days of inactivity.