jQuery: Creating a New DOM element and showing it
-
21-08-2019 - |
Question
So as the title suggests I wish to create a new dom element (the HTML is generated and retrieved via AJAX). I kind of got it working but it appears hidden, and when I try to Fade In it breaks!
function AddContent(Content) {
div = document.createElement(Content)
div.appendTo($("#contentAreas"));
// $(div).fadeIn("slow");
}
It basically inserts the item into the correct position but doesn't show it. When I attempt to fade it in, it's fails to do so. No errors.
Any ideas?
Solution
The div needs to be jQuery for appendTo to work. Try this:
function AddContent( content ) {
$(content).appendTo("#contentAreas").fadeIn("slow");
}
OTHER TIPS
Should be $(div).appendTo(...)
. Or you could change how div
is created to div = $(Content)
, perhaps.
You don't need createElement, the jQuery constructor can take html as a parameter (assuming that content is an html string):
function AddContent(content) {
var div = $(content);
div.appendTo($("#contentAreas"));
$(div).fadeIn("slow");
}
How about this:
function AddContent(Content) {
div = $('<div>' + Content + '</div>');
div.appendTo($("#contentAreas")).fadeIn("slow");
}
The appendTo takes a selector so it does not need to be a jquery object as all the other examples above have it.
function AddContent( content ) {
$(content).appendTo("#contentAreas").fadeIn("slow");
}