From b0fe380cf89564305646bbd55d1fd7bd210fd591 Mon Sep 17 00:00:00 2001 From: John Resig Date: Sat, 7 Nov 2009 16:43:31 +0100 Subject: Make .add() take an optional context and - if a context is specified in the root selector - use that as the base context. --- src/traversing.js | 6 +++--- test/unit/core.js | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/traversing.js b/src/traversing.js index 583a303d6..92f58ba9c 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -68,9 +68,9 @@ jQuery.fn.extend({ }); }, - add: function( selector ) { + add: function( selector, context ) { var set = typeof selector === "string" ? - jQuery( selector ) : + jQuery( selector, context || this.context ) : jQuery.makeArray( selector ), all = jQuery.merge( this.get(), set ); @@ -185,4 +185,4 @@ jQuery.extend({ return r; } -}); \ No newline at end of file +}); diff --git a/test/unit/core.js b/test/unit/core.js index e67bc52ff..25ff1f573 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -436,6 +436,18 @@ test("add(String|Element|Array|undefined)", function() { ok( jQuery([]).add( document.getElementById('form') ).length >= 13, "Add a form (adds the elements)" ); }); +test("add(String, Context)", function() { + expect(6); + + equals( jQuery(document).add("#form").length, 2, "Make sure that using regular context document still works." ); + equals( jQuery(document.body).add("#form").length, 2, "Using a body context." ); + equals( jQuery(document.body).add("#html").length, 1, "Using a body context." ); + + equals( jQuery(document).add("#form", document).length, 2, "Use a passed in document context." ); + equals( jQuery(document).add("#form", document.body).length, 2, "Use a passed in body context." ); + equals( jQuery(document).add("#html", document.body).length, 1, "Use a passed in body context." ); +}); + test("each(Function)", function() { expect(1); var div = jQuery("div"); -- cgit v1.2.3