From: John Resig Date: Wed, 21 Jan 2009 22:36:21 +0000 (+0000) Subject: After discussing it with a number of users I've decided to revert the change to ... X-Git-Url: http://git.asbjorn.biz/?a=commitdiff_plain;ds=sidebyside;h=9b3804a8eca6ce04dd48fbfcc157c8d176a25397;p=jquery.git After discussing it with a number of users I've decided to revert the change to [name!=value]. It is now equal to :not([attr!=value]). Attempting to switch it to [attr]:not([attr!=value]) produced some really non-obvious results and confused users. Fixes jQuery bug #3884. --- diff --git a/src/selector.js b/src/selector.js index 8af3a0d..65563a1 100644 --- a/src/selector.js +++ b/src/selector.js @@ -564,7 +564,7 @@ var Expr = Sizzle.selectors = { ATTR: function(elem, match){ var result = Expr.attrHandle[ match[1] ] ? Expr.attrHandle[ match[1] ]( elem ) : elem[ match[1] ] || elem.getAttribute( match[1] ), value = result + "", type = match[2], check = match[4]; return result == null ? - false : + type === "!=" : type === "=" ? value === check : type === "*=" ? diff --git a/test/unit/selector.js b/test/unit/selector.js index 4e6feaf..5103d58 100644 --- a/test/unit/selector.js +++ b/test/unit/selector.js @@ -205,7 +205,7 @@ test("child and adjacent", function() { }); test("attributes", function() { - expect(34); + expect(35); t( "Attribute Exists", "a[title]", ["google"] ); t( "Attribute Exists", "*[title]", ["google"] ); t( "Attribute Exists", "[title]", ["google"] ); @@ -247,6 +247,7 @@ test("attributes", function() { t( "Attribute Begins With", "a[href ^= 'http://www']", ["google","yahoo"] ); t( "Attribute Ends With", "a[href $= 'org/']", ["mark"] ); t( "Attribute Contains", "a[href *= 'google']", ["google","groups"] ); + t( "Attribute Is Not Equal", "#ap a[hreflang!='en']", ["google","groups","anchor1"] ); t("Select options via :selected", "#select1 option:selected", ["option1a"] ); t("Select options via :selected", "#select2 option:selected", ["option2d"] );