Sé que hay muchas preguntas sobre replacewith, pero ninguna parece tener respuestas que se apliquen a mi situación.
html: <div id="foo"></div>
Quiero que #foo se desvanezca, luego quiero reemplazar todo (no solo el contenido) con esencialmente lo mismo <div id="foo"></div> que se desvanece.
Gracias
$('#foo').fadeOut("slow", function(){ var div = $("<div id='foo'>test2</div>").hide(); $(this).replaceWith(div); $('#foo').fadeIn("slow"); });jsfiddle-http: //jsfiddle.net/9Dubr/1/
Actualizado para aparecer correctamente
$('#foo').fadeOut("slow", function(){ $('#foo').html(data); $('#foo').fadeIn("slow"); }Uso con éxito este patrón para GET+fadeOut+fadeIn (con jQuery 1.11.0):
$.get(url).done(function(data) { $target.fadeOut(function() { $target.replaceWith(function() { return $(data).hide().fadeIn(); }); }); }); donde $target es el elemento a reemplazar.