Skip to main content

Bug Tracker

Side navigation

#3762 closed bug (duplicate)

Opened December 31, 2008 04:19PM UTC

Closed January 04, 2009 04:06PM UTC

multiple selectors inside :not() while using $.filter() do not work in 1.3b1

Reported by: garrett Owned by: john
Priority: major Milestone: 1.3
Component: selector Version:
Keywords: Cc:
Blocked by: Blocking:
Description

The following worked in jQuery 1.2.x:

$('ul>li').filter('li:not(.test-2,.test-4)').css({fontWeight: 'bold'});

It does not in jQuery 1.3b1. Curiously, it seems to work fine when used like so:

$('li:not(.test-3,.test-4)').css({backgroundColor: 'red'});

Also, the following statement works in 1.3b1 (which is similar to the first, except testing for one value inside of the :not()):

$('ul>li').filter('li:not(.test-2)').css({fontWeight: 'bold'});

So it seems that it may be an issue with passing multiple selectors in :not(), but only when filtering.

Attachments (1)
  • jq1.3b1-filter-not.html (0.7 KB) - added by garrett December 31, 2008 04:20PM UTC.

    demonstration of the $.filter(':not(.test-1,.test-2)') bug

Change History (2)

Changed December 31, 2008 04:25PM UTC by garrett comment:1

This causes a JavaScript error in line 1812 of jQuery 1.3b1.

In this code (specifically the match[3]... line):

PSEUDO: function(match){

if ( match[1] === "not" ) {

match[3] = match[3].split(/\\s*,\\s*/);

}

return match;

},

Changed January 04, 2009 04:06PM UTC by john comment:2

resolution: → duplicate
status: newclosed

This is a duplicate of #3757, which has been resolved.