Make .add() take an optional context and - if a context is specified in the root...
authorJohn Resig <jeresig@gmail.com>
Sat, 7 Nov 2009 15:43:31 +0000 (16:43 +0100)
committerJohn Resig <jeresig@gmail.com>
Sat, 7 Nov 2009 15:43:31 +0000 (16:43 +0100)
src/traversing.js
test/unit/core.js

index 583a303..92f58ba 100644 (file)
@@ -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
+});
index e67bc52..25ff1f5 100644 (file)
@@ -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");