X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=56fd0983e33862cda330974947832bde770bcf3d;hb=1c8c3883a98d7d896efefe92eb0d22b1681e92f1;hp=55e62363fedcd2e566dbff12ffead3806730ed7f;hpb=4bbb70b4eb0bcd93c99c0bfcfcf4fc44504c4c41;p=jquery.git diff --git a/src/core.js b/src/core.js index 55e6236..56fd098 100644 --- a/src/core.js +++ b/src/core.js @@ -279,25 +279,28 @@ jQuery.fn = jQuery.prototype = { return this.prevObject || jQuery(null); }, - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: [].push, - sort: [].sort, - splice: [].splice, - find: function( selector ) { - if ( this.length === 1 ) { - var ret = this.pushStack( "", "find", selector ); - jQuery.find( selector, this[0], ret ); - return ret; - } else { - var ret = this.pushStack( "", "find", selector ); - for ( var i = 0, l = this.length; i < l; i++ ) { - jQuery.find( selector, this[i], ret ); + var ret = this.pushStack( "", "find", selector ), length = 0, + splice = Array.prototype.splice; + + for ( var i = 0, l = this.length; i < l; i++ ) { + length = ret.length; + jQuery.find( selector, this[i], ret ); + + if ( i > 0 ) { + // Make sure that the results are unique + for ( var n = length; n < ret.length; n++ ) { + for ( var r = 0; r < length; r++ ) { + if ( ret[r] === ret[n] ) { + splice.call(ret, n--, 1); + break; + } + } + } } - //jQuery.find.uniqueSort( ret ); - return ret; } + + return ret; }, clone: function( events ) {