From f28f199dc0a353135ef8b9afa2f3d25c6ffd2c75 Mon Sep 17 00:00:00 2001 From: John Resig Date: Tue, 4 Sep 2007 04:44:54 +0000 Subject: [PATCH] Added support for the new .andSelf() method. This method combines the previous two matched sets on the stack into a single stack. For example: $("#foo").parent(); // => [ #bar ] $("#foo").parent().andSelf(); // => [ #bar, #foo ] --- src/jquery/coreTest.js | 8 ++++++++ src/jquery/jquery.js | 8 ++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/jquery/coreTest.js b/src/jquery/coreTest.js index 18fed649..d0fc9d25 100644 --- a/src/jquery/coreTest.js +++ b/src/jquery/coreTest.js @@ -849,6 +849,14 @@ test("not()", function() { isSet( $("p").not($("#ap, #sndp, .result")).get(), q("firstp", "en", "sap", "first"), "not(jQuery)" ); }); +test("andSelf()", function() { + expect(4); + isSet( $("#en").siblings().andSelf().get(), q("sndp", "sap","en"), "Check for siblings and self" ); + isSet( $("#foo").children().andSelf().get(), q("sndp", "en", "sap", "foo"), "Check for children and self" ); + isSet( $("#en, #sndp").parent().andSelf().get(), q("foo","en","sndp"), "Check for parent and self" ); + isSet( $("#groups").parents("p, div").andSelf().get(), q("ap", "main", "groups"), "Check for parents and self" ); +}); + test("siblings([String])", function() { expect(5); isSet( $("#en").siblings().get(), q("sndp", "sap"), "Check for siblings" ); diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index 038323ad..9e59f9da 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -325,13 +325,17 @@ jQuery.fn = jQuery.prototype = { return this.pushStack( Array.prototype.slice.apply( this, arguments ) ); }, - map: function(fn){ + map: function(fn) { return this.pushStack(jQuery.map( this, function(elem,i){ return fn.call( elem, i, elem ); })); }, + + andSelf: function() { + return this.add( this.prevObject ); + }, - domManip: function(args, table, dir, fn){ + domManip: function(args, table, dir, fn) { var clone = this.length > 1, a; return this.each(function(){