Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

appendTo/prependTo but instead of adding I want to replace the content. htmlTo?

Tags:

jquery

Quick jquery question:
I know about appendTo and prependTo but is there maybe something like htmlTo? Yeah, I know it sounds silly but instead of adding elements like appendto and prependTo do I want to replace the html.

$("<div>World</div>").htmlTo($("#Hello"));

So I want the div with World to replace all the content in the element with id Hello.

Edit: Thanks everybody for the answers but I think I wasn't clear. I am chaining a lot of functions onto one element and at the end I clone that element and I want to add it to an other div.

$("#World").hide().clone().htmlTo($("#Hello"));

Yes, I could just write it the other way around but I would like to only have 1 chain.

like image 815
Pickels Avatar asked Jan 07 '10 15:01

Pickels


3 Answers

This should work as well:

$("<div>World</div>").appendTo($("#Hello").empty());
like image 50
Pat Migliaccio Avatar answered Sep 27 '22 22:09

Pat Migliaccio


You can do it the other way around:

$('#Hello').html($('#World').html());

Or create a plugin that reverses the chain:

$.fn.htmlTo = function(elem) {
    return this.each(function() {
        $(elem).html($(this).html());
    });
}

$('#World').htmlTo('#Hello');
like image 31
David Hellsing Avatar answered Sep 28 '22 00:09

David Hellsing


Based on your edit, if you do not care about moving the actual DIV container and merely it's contents you could easily do:

$('#Hello').html($('#World').hide().html());
like image 27
Corey Ballou Avatar answered Sep 28 '22 00:09

Corey Ballou