aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Raddatz <mraddatz@gmail.com>2013-02-08 05:43:25 +0800
committerRichard Gibson <richard.gibson@gmail.com>2013-02-08 09:49:14 -0500
commit6a0ee2d9ed34b81d4ad0662423bf815a3110990f (patch)
tree493fe864323d556814b4e1fa4c8daf8037fa5cec
parentdc9b009c1325e05344fa2216fac71fac3a0a0590 (diff)
downloadjquery-6a0ee2d9ed34b81d4ad0662423bf815a3110990f.tar.gz
jquery-6a0ee2d9ed34b81d4ad0662423bf815a3110990f.zip
Fix #13401: replaceWith(""). Close gh-1163.
-rw-r--r--src/manipulation.js20
-rw-r--r--test/unit/manipulation.js9
2 files changed, 20 insertions, 9 deletions
diff --git a/src/manipulation.js b/src/manipulation.js
index d50ebddf7..a5a1a3975 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -241,15 +241,17 @@ jQuery.fn.extend({
value = jQuery( value ).not( this ).detach();
}
- return this.domManip( [ value ], true, function( elem ) {
- var next = this.nextSibling,
- parent = this.parentNode;
-
- if ( parent ) {
- jQuery( this ).remove();
- parent.insertBefore( elem, next );
- }
- });
+ return value !== "" ?
+ this.domManip( [ value ], true, function( elem ) {
+ var next = this.nextSibling,
+ parent = this.parentNode;
+
+ if ( parent ) {
+ jQuery( this ).remove();
+ parent.insertBefore( elem, next );
+ }
+ }) :
+ this.remove();
},
detach: function( selector ) {
diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js
index 5c994a027..01d53a0a1 100644
--- a/test/unit/manipulation.js
+++ b/test/unit/manipulation.js
@@ -1219,6 +1219,15 @@ test( "replaceWith(string) for more than one element", function() {
equal(jQuery("#foo p").length, 0, "verify that all the three original element have been replaced");
});
+test( "replaceWith(\"\") (#13401)", 4, function() {
+ expect( 1 );
+
+ var div = jQuery("<div><p></p></div>");
+
+ div.children().replaceWith("");
+ equal( div.html().toLowerCase(), "", "Replacing with empty string removes element" );
+});
+
test( "replaceAll(String|Element|Array<Element>|jQuery)", function() {
expect( 10 );