]> source.dussan.org Git - jquery.git/commitdiff
Fix #13233: re-allow .replaceWith of text nodes. Close gh-1137.
authorRichard Gibson <richard.gibson@gmail.com>
Wed, 16 Jan 2013 17:55:56 +0000 (12:55 -0500)
committerRichard Gibson <richard.gibson@gmail.com>
Wed, 16 Jan 2013 18:57:00 +0000 (13:57 -0500)
(cherry picked from commit 6b1b0a26b4d485b4d9f334286efed5dfe33e3f3f)

src/manipulation.js
test/unit/manipulation.js

index 75c6be7b4f37b0c48de4e848bff752b850273990..3193ad7af591ffdae3f7b93ca5cebeb2af70f695 100644 (file)
@@ -243,15 +243,9 @@ jQuery.fn.extend({
                        var next = this.nextSibling,
                                parent = this.parentNode;
 
-                       if ( parent && this.nodeType === 1 || this.nodeType === 11 ) {
-
+                       if ( parent ) {
                                jQuery( this ).remove();
-
-                               if ( next ) {
-                                       next.parentNode.insertBefore( elem, next );
-                               } else {
-                                       parent.appendChild( elem );
-                               }
+                               parent.insertBefore( elem, next );
                        }
                });
        },
index f3040c4fbd9d619d3f3bdd4a7715269eed16cc46..c5bee2ca9f389221559dd09ae94e6d169dbeba80 100644 (file)
@@ -1107,7 +1107,7 @@ test( "insertAfter(String|Element|Array<Element>|jQuery)", function() {
 var testReplaceWith = function( val ) {
 
        var tmp, y, child, child2, set, non_existent, $div,
-               expected = 22;
+               expected = 23;
 
        expect( expected );
 
@@ -1134,6 +1134,10 @@ var testReplaceWith = function( val ) {
        ok( jQuery("#mark")[ 0 ], "Replace element with set of elements" );
        ok( !jQuery("#groups")[ 0 ], "Verify that original element is gone, after set of elements" );
 
+       tmp = jQuery("<b>content</b>")[0];
+       jQuery("#anchor1").contents().replaceWith( val(tmp) );
+       deepEqual( jQuery("#anchor1").contents().get(), [ tmp ], "Replace text node with element" );
+
 
        tmp = jQuery("<div/>").appendTo("#qunit-fixture").click(function() {
                ok( true, "Newly bound click run." );