Added support for the new .andSelf() method. This method combines the previous two...
authorJohn Resig <jeresig@gmail.com>
Tue, 4 Sep 2007 04:44:54 +0000 (04:44 +0000)
committerJohn Resig <jeresig@gmail.com>
Tue, 4 Sep 2007 04:44:54 +0000 (04:44 +0000)
For example:
  $("#foo").parent();
  // => [ #bar ]

  $("#foo").parent().andSelf();
  // => [ #bar, #foo ]

src/jquery/coreTest.js
src/jquery/jquery.js

index 18fed64..d0fc9d2 100644 (file)
@@ -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" );
index 038323a..9e59f9d 100644 (file)
@@ -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(){