Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery replaceWith find new element

I'm writing a script to replace some images with divs in jQuery. I'm currently using the replaceWith() method, which works fine, but returns the original (removed) element instead of the new element.

The .replaceWith() method, like most jQuery methods, returns the jQuery object so that other methods can be chained onto it. However, it must be noted that the original jQuery object is returned. This object refers to the element that has been removed from the DOM, not the new element that has replaced it.

How can I get a reference to the new DOM element I just created?

like image 802
C. Ross Avatar asked May 25 '11 02:05

C. Ross


2 Answers

$.fn.replaceWithPush = function(a) {
    var $a = $(a);

    this.replaceWith($a);
    return $a;
};

See a working demo

like image 99
qwertymk Avatar answered Oct 15 '22 10:10

qwertymk


I believe replaceAll() returns the new content. It has the target and source reversed from replaceWith().

var newobj = $( "<p>New paragraph" ).replaceAll( "#replaceme" );
like image 39
eaolson Avatar answered Oct 15 '22 10:10

eaolson