By default, use document root rather than current selection's context when add()ing elements. Fixes #7853.

This commit is contained in:
Dave Methvin 2010-12-28 21:07:04 -05:00
parent 5fd21fc02b
commit c27d5ca6f5
2 changed files with 9 additions and 8 deletions

View file

@ -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 );

View file

@ -441,11 +441,12 @@ 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("#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", 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" );
});