Made sure that .remove now uses multiFilter. Fixes bug #4205.

This commit is contained in:
John Resig 2009-02-20 19:45:29 +00:00
parent db62240fcf
commit a37ca9e905
2 changed files with 5 additions and 2 deletions

View File

@ -1224,7 +1224,7 @@ jQuery.each({
}, },
remove: function( selector ) { remove: function( selector ) {
if ( !selector || jQuery.filter( selector, [ this ] ).length ) { if ( !selector || jQuery.multiFilter( selector, [ this ] ).length ) {
// Prevent memory leaks // Prevent memory leaks
jQuery( "*", this ).add([this]).each(function(){ jQuery( "*", this ).add([this]).each(function(){
jQuery.event.remove(this); jQuery.event.remove(this);

View File

@ -1713,7 +1713,7 @@ test("jQuery.className", function() {
}); });
test("remove()", function() { test("remove()", function() {
expect(6); expect(7);
jQuery("#ap").children().remove(); jQuery("#ap").children().remove();
ok( jQuery("#ap").text().length > 10, "Check text is not removed" ); ok( jQuery("#ap").text().length > 10, "Check text is not removed" );
equals( jQuery("#ap").children().length, 0, "Check remove" ); equals( jQuery("#ap").children().length, 0, "Check remove" );
@ -1723,6 +1723,9 @@ test("remove()", function() {
ok( jQuery("#ap").text().length > 10, "Check text is not removed" ); ok( jQuery("#ap").text().length > 10, "Check text is not removed" );
equals( jQuery("#ap").children().length, 1, "Check filtered remove" ); equals( jQuery("#ap").children().length, 1, "Check filtered remove" );
jQuery("#ap").children().remove("a, code");
equals( jQuery("#ap").children().length, 0, "Check multi-filtered remove" );
// using contents will get comments regular, text, and comment nodes // using contents will get comments regular, text, and comment nodes
equals( jQuery("#nonnodes").contents().length, 3, "Check node,textnode,comment remove works" ); equals( jQuery("#nonnodes").contents().length, 3, "Check node,textnode,comment remove works" );
jQuery("#nonnodes").contents().remove(); jQuery("#nonnodes").contents().remove();