From c27d5ca6f5b69818c48fdc9b0f988790653fb1a5 Mon Sep 17 00:00:00 2001 From: Dave Methvin Date: Tue, 28 Dec 2010 21:07:04 -0500 Subject: [PATCH] By default, use document root rather than current selection's context when add()ing elements. Fixes #7853. --- src/traversing.js | 2 +- test/unit/traversing.js | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/traversing.js b/src/traversing.js index 15446bd8b..e86883d90 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -134,7 +134,7 @@ jQuery.fn.extend({ add: function( selector, context ) { var set = typeof selector === "string" ? - jQuery( selector, context || this.context ) : + jQuery( selector, context ) : jQuery.makeArray( selector ), all = jQuery.merge( this.get(), set ); diff --git a/test/unit/traversing.js b/test/unit/traversing.js index 0d079f19a..b1fd8a9bf 100644 --- a/test/unit/traversing.js +++ b/test/unit/traversing.js @@ -440,12 +440,13 @@ test("add(String|Element|Array|undefined)", function() { test("add(String, Context)", function() { expect(6); + + equals( jQuery("#firstp").add("#ap").length, 2, "Add selector to selector" ); + equals( jQuery(document.getElementById("firstp")).add("#ap").length, 2, "Add gEBId to selector" ); + equals( jQuery(document.getElementById("firstp")).add(document.getElementById("ap")).length, 2, "Add gEBId to gEBId" ); - 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." ); + var ctx = document.getElementById("firstp"); + equals( jQuery("#firstp").add("#ap", ctx).length, 1, "Add selector to selector with context" ); + equals( jQuery(document.getElementById("firstp")).add("#ap", ctx).length, 1, "Add gEBId to selector with context" ); + equals( jQuery(document.getElementById("firstp")).add(document.getElementById("ap"), ctx).length, 2, "Add gEBId to gEBId with context" ); });