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
(403-613-7008)
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.