X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fselector.js;h=6dcab37fe36b38e7a8a03795eb31b522afea043d;hb=b8ceedbe2ba07f87a0f0e3862dfe012e8aa863b3;hp=abb1e7f69027a6e5d7e0efd3857e379a1476f514;hpb=e6fccd71031bd37300c1dfe79873b3d2529b4775;p=jquery.git diff --git a/src/selector.js b/src/selector.js index abb1e7f..6dcab37 100644 --- a/src/selector.js +++ b/src/selector.js @@ -64,16 +64,16 @@ jQuery.extend({ animated: function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;} } }, - + // The regular expressions that power the parsing engine parse: [ // Match: [@value='test'], [@foo] - /^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, + /^(\[) *@?([\w:-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/, // Match: :contains('foo') /^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/, - // Match: :even, :last-chlid, #id, .class + // Match: :even, :last-child, #id, .class new RegExp("^([:.#]*)(" + chars + "+)") ], @@ -118,7 +118,7 @@ jQuery.extend({ // An attempt at speeding up child selectors that // point to a specific element tag re = quickChild, - + m = re.exec(t); if ( m ) { @@ -151,12 +151,12 @@ jQuery.extend({ var id = jQuery.data(n); if ( m == "~" && merge[id] ) break; - + if (!nodeName || n.nodeName.toUpperCase() == nodeName ) { if ( m == "~" ) merge[id] = true; r.push( n ); } - + if ( m == "+" ) break; } } @@ -190,7 +190,7 @@ jQuery.extend({ // Optimize for the case nodeName#idName var re2 = quickID; var m = re2.exec(t); - + // Re-organize the results, so that they're consistent if ( m ) { m = [ 0, m[2], m[3], m[1] ]; @@ -210,7 +210,7 @@ jQuery.extend({ if ( m[1] == "#" && elem && elem.getElementById && !jQuery.isXMLDoc(elem) ) { // Optimization for HTML document case var oid = elem.getElementById(m[2]); - + // Do a quick check for the existence of the actual ID attribute // to avoid selecting by the name attribute in IE // also check to insure id is a string to avoid selecting an element with the name of 'id' inside a form @@ -332,11 +332,11 @@ jQuery.extend({ else if ( m[1] == "[" ) { var tmp = [], type = m[3]; - + for ( var i = 0, rl = r.length; i < rl; i++ ) { var a = r[i], z = a[ jQuery.props[m[2]] || m[2] ]; - - if ( z == null || /href|src|selected/.test(m[2]) ) + + if ( z == null || /style|href|src|selected/.test(m[2]) ) z = jQuery.attr(a,m[2]) || ''; if ( (type == "" && !!z || @@ -347,7 +347,7 @@ jQuery.extend({ (type == "*=" || type == "~=") && z.indexOf(m[5]) >= 0) ^ not ) tmp.push( a ); } - + r = tmp; // We can get a speed boost by handling nth-child here @@ -359,7 +359,7 @@ jQuery.extend({ !/\D/.test(m[3]) && "0n+" + m[3] || m[3]), // calculate the numbers (first)n+(last) including if they are negative first = (test[1] + (test[2] || 1)) - 0, last = test[3] - 0; - + // loop through all the elements left in the jQuery object for ( var i = 0, rl = r.length; i < rl; i++ ) { var node = r[i], parentNode = node.parentNode, id = jQuery.data(parentNode); @@ -419,7 +419,7 @@ jQuery.extend({ } return matched; }, - + nth: function(cur,result,dir,elem){ result = result || 1; var num = 0; @@ -430,7 +430,7 @@ jQuery.extend({ return cur; }, - + sibling: function( n, elem ) { var r = [];