From: Dave Methvin Date: Wed, 29 Dec 2010 02:07:04 +0000 (-0500) Subject: By default, use document root rather than current selection's context when add()ing... X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=c27d5ca6f5b69818c48fdc9b0f988790653fb1a5;hp=5fd21fc02bda43d4e31bcf2d5b55b918a9190a7f By default, use document root rather than current selection's context when add()ing elements. Fixes #7853. --- diff --git a/src/traversing.js b/src/traversing.js index 15446bd..e86883d 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 0d079f1..b1fd8a9 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(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." ); + + 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" ); + + 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" ); });