aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Alman <cowboy@rj3.net>2012-05-29 12:04:27 -0400
committerRick Waldron <waldron.rick@gmail.com>2012-05-29 12:04:27 -0400
commit02dd7c570bf4dbbdfc168f4352d04c667447be5d (patch)
tree67e549c9db7e53e66edc58c3425c446618853e0b
parent7f2cc46955b35dc3d5a0526d0cb038d4a50b936b (diff)
downloadjquery-02dd7c570bf4dbbdfc168f4352d04c667447be5d.tar.gz
jquery-02dd7c570bf4dbbdfc168f4352d04c667447be5d.zip
jQuery#addBack supports an optional selector that can be used to filter the prior set before adding it back. Fixes #9800
-rw-r--r--src/traversing.js5
-rw-r--r--test/unit/traversing.js3
2 files changed, 5 insertions, 3 deletions
diff --git a/src/traversing.js b/src/traversing.js
index d9be9c7e6..7a9c60f91 100644
--- a/src/traversing.js
+++ b/src/traversing.js
@@ -143,8 +143,9 @@ jQuery.fn.extend({
jQuery.unique( all ) );
},
- addBack: function() {
- return this.add( this.prevObject );
+ addBack: function( selector ) {
+ var prior = this.prevObject;
+ return this.add( selector == null ? prior : prior.filter(selector) );
}
});
diff --git a/test/unit/traversing.js b/test/unit/traversing.js
index 3400ffea8..7100342c7 100644
--- a/test/unit/traversing.js
+++ b/test/unit/traversing.js
@@ -403,11 +403,12 @@ test("has(Arrayish)", function() {
});
test("addBack()", function() {
- expect(4);
+ expect(5);
deepEqual( jQuery("#en").siblings().addBack().get(), q("sndp", "en", "sap"), "Check for siblings and self" );
deepEqual( jQuery("#foo").children().addBack().get(), q("foo", "sndp", "en", "sap"), "Check for children and self" );
deepEqual( jQuery("#sndp, #en").parent().addBack().get(), q("foo","sndp","en"), "Check for parent and self" );
deepEqual( jQuery("#groups").parents("p, div").addBack().get(), q("qunit-fixture", "ap", "groups"), "Check for parents and self" );
+ deepEqual( jQuery("#select1 > option").filter(":first-child").addBack(":last-child").get(), q("option1a", "option1d"), "Should contain the last elems plus the *filtered* prior set elements" );
});
test("siblings([String])", function() {