jquery selector: Replacing {0,1} for ? in a regex.
[jquery.git] / src / selector.js
index b3d8dbc..9cc75fc 100644 (file)
@@ -246,7 +246,7 @@ var Expr = Sizzle.selectors = {
                ID: /#((?:[\w\u0128-\uFFFF_-]|\\.)+)/,
                CLASS: /\.((?:[\w\u0128-\uFFFF_-]|\\.)+)/,
                NAME: /\[name=['"]*((?:[\w\u0128-\uFFFF_-]|\\.)+)['"]*\]/,
-               ATTR: /\[((?:[\w\u0128-\uFFFF_-]|\\.)+)\s*(?:(\S{0,1}=)\s*(['"]*)(.*?)\3|)\]/,
+               ATTR: /\[((?:[\w\u0128-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\]/,
                TAG: /^((?:[\w\u0128-\uFFFF\*_-]|\\.)+)/,
                CHILD: /:(only|nth|last|first)-child\(?(even|odd|[\dn+-]*)\)?/,
                POS: /:(nth|eq|gt|lt|first|last|even|odd)\(?(\d*)\)?(?:[^-]|$)/,
@@ -778,7 +778,7 @@ function dirCheck( dir, cur, doneName, checkSet, nodeCheck ) {
 var contains = document.compareDocumentPosition ?  function(a, b){
        return a.compareDocumentPosition(b) & 16;
 } : function(a, b){
-       return a !== b && a.contains(b);
+       return a !== b && (a.contains ? a.contains(b) : true);
 };
 
 // EXPOSE