Standardize on using .nodeName in place of .tagName. Fixes jQuery bug #4923.
[jquery.git] / src / selector.js
index b58507d..c6fc025 100644 (file)
@@ -332,7 +332,7 @@ var Expr = Sizzle.selectors = {
                "": function(checkSet, part, isXML){
                        var doneName = done++, checkFn = dirCheck;
 
-                       if ( !part.match(/\W/) ) {
+                       if ( !/\W/.test(part) ) {
                                var nodeCheck = part = isXML ? part : part.toUpperCase();
                                checkFn = dirNodeCheck;
                        }
@@ -342,7 +342,7 @@ var Expr = Sizzle.selectors = {
                "~": function(checkSet, part, isXML){
                        var doneName = done++, checkFn = dirCheck;
 
-                       if ( typeof part === "string" && !part.match(/\W/) ) {
+                       if ( typeof part === "string" && !/\W/.test(part) ) {
                                var nodeCheck = part = isXML ? part : part.toUpperCase();
                                checkFn = dirNodeCheck;
                        }
@@ -435,7 +435,7 @@ var Expr = Sizzle.selectors = {
                PSEUDO: function(match, curLoop, inplace, result, not){
                        if ( match[1] === "not" ) {
                                // If we're dealing with a complex expression, or a simple one
-                               if ( match[3].match(chunker).length > 1 || /^\w/.test(match[3]) ) {
+                               if ( chunker.exec(match[3]).length > 1 || /^\w/.test(match[3]) ) {
                                        match[3] = Sizzle(match[3], null, null, curLoop);
                                } else {
                                        var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
@@ -551,7 +551,7 @@ var Expr = Sizzle.selectors = {
                        } else if ( name === "not" ) {
                                var not = match[3];
 
-                               for ( var i = 0, l = not.length; i < l; i++ ) {
+                               for ( i = 0, l = not.length; i < l; i++ ) {
                                        if ( not[i] === elem ) {
                                                return false;
                                        }
@@ -565,13 +565,13 @@ var Expr = Sizzle.selectors = {
                        switch (type) {
                                case 'only':
                                case 'first':
-                                       while (node = node.previousSibling)  {
+                                       while ( (node = node.previousSibling) )  {
                                                if ( node.nodeType === 1 ) return false;
                                        }
                                        if ( type == 'first') return true;
                                        node = elem;
                                case 'last':
-                                       while (node = node.nextSibling)  {
+                                       while ( (node = node.nextSibling) )  {
                                                if ( node.nodeType === 1 ) return false;
                                        }
                                        return true;
@@ -978,7 +978,7 @@ jQuery.expr[":"] = jQuery.expr.filters;
 
 Sizzle.selectors.filters.hidden = function(elem){
        var width = elem.offsetWidth, height = elem.offsetHeight,
-                force = /^tr$/i.test( elem.tagName ); // ticket #4512
+                force = /^tr$/i.test( elem.nodeName ); // ticket #4512
        return ( width === 0 && height === 0 && !force ) ?
                true :
                        ( width !== 0 && height !== 0 && !force ) ?