aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Resig <jeresig@gmail.com>2009-11-07 16:43:31 +0100
committerJohn Resig <jeresig@gmail.com>2009-11-07 16:43:31 +0100
commitb0fe380cf89564305646bbd55d1fd7bd210fd591 (patch)
treeba6cb8ade9535efb386a9c1ec3ecd695ee2a681a
parentef05f44cce870a8b78637b0a88b27087f7f13b37 (diff)
downloadjquery-b0fe380cf89564305646bbd55d1fd7bd210fd591.tar.gz
jquery-b0fe380cf89564305646bbd55d1fd7bd210fd591.zip
Make .add() take an optional context and - if a context is specified in the root selector - use that as the base context.
-rw-r--r--src/traversing.js6
-rw-r--r--test/unit/core.js12
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");