Make sure that [name=FOO] searches actually have the specified name (IE includes...
authorJohn Resig <jeresig@gmail.com>
Sun, 15 Feb 2009 22:33:19 +0000 (22:33 +0000)
committerJohn Resig <jeresig@gmail.com>
Sun, 15 Feb 2009 22:33:19 +0000 (22:33 +0000)
src/selector.js
test/unit/selector.js

index f1745e4..4177672 100644 (file)
@@ -332,7 +332,14 @@ var Expr = Sizzle.selectors = {
                },
                NAME: function(match, context, isXML){
                        if ( typeof context.getElementsByName !== "undefined" ) {
-                               var ret = context.getElementsByName(match[1]);
+                               var ret = [], results = context.getElementsByName(match[1]);
+
+                               for ( var i = 0, l = results.length; i < l; i++ ) {
+                                       if ( results[i].getAttribute("name") === match[1] ) {
+                                               ret.push( results[i] );
+                                       }
+                               }
+
                                return ret.length === 0 ? null : ret;
                        }
                },
index 72511eb..419116e 100644 (file)
@@ -144,7 +144,7 @@ test("class", function() {
 });
 
 test("name", function() {
-       expect(9);
+       expect(11);
 
        t( "Name selector", "input[name=action]", ["text1"] );
        t( "Name selector with single quotes", "input[name='action']", ["text1"] );
@@ -158,6 +158,13 @@ test("name", function() {
 
        isSet( jQuery("#form").find("input[name=action]"), q("text1"), "Name selector within the context of another element" );
        isSet( jQuery("#form").find("input[name='foo[bar]']"), q("hidden2"), "Name selector for grouped form element within the context of another element" );
+
+       var a = jQuery('<a id="tName1ID" name="tName1">tName1 A</a><a id="tName2ID" name="tName2">tName2 A</a><div id="tName1">tName1 Div</div>').appendTo('#main');
+
+       t( "Find elements that have similar IDs", "[name=tName1]", ["tName1ID"] );
+       t( "Find elements that have similar IDs", "[name=tName2]", ["tName2ID"] );
+
+       a.remove();
 });