Make sure that forms and selects are added to a jQuery set correctly. Fixes #6912.

1.7/enhancement_8685
John Resig 2011-04-17 10:51:24 -07:00
parent a9b81d759a
commit 728a70c036
2 changed files with 4 additions and 3 deletions

View File

@ -160,7 +160,7 @@ jQuery.fn.extend({
add: function( selector, context ) {
var set = typeof selector === "string" ?
jQuery( selector, context ) :
jQuery.makeArray( selector ),
jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
all = jQuery.merge( this.get(), set );
return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?

View File

@ -480,7 +480,7 @@ test("contents()", function() {
});
test("add(String|Element|Array|undefined)", function() {
expect(16);
expect(17);
same( jQuery("#sndp").add("#en").add("#sap").get(), q("sndp", "en", "sap"), "Check elements from document" );
same( jQuery("#sndp").add( jQuery("#en")[0] ).add( jQuery("#sap") ).get(), q("sndp", "en", "sap"), "Check elements from document" );
ok( jQuery([]).add(jQuery("#form")[0].elements).length >= 13, "Check elements from array" );
@ -519,7 +519,8 @@ test("add(String|Element|Array|undefined)", function() {
var notDefined;
equals( jQuery([]).add(notDefined).length, 0, "Check that undefined adds nothing" );
ok( jQuery([]).add( document.getElementById("form") ).length >= 13, "Add a form (adds the elements)" );
equals( jQuery([]).add( document.getElementById("form") ).length, 1, "Add a form" );
equals( jQuery([]).add( document.getElementById("select1") ).length, 1, "Add a select" );
});
test("add(String, Context)", function() {