To create <div id="hello"></div>
try
$('<div id="hello"></div>').appendTo('body');
To create <div id="test" class="a b"></div>
same as
$('<div id="test" class="a b"></div>').appendTo('body');
$('<div id="test" class="a b"></div>')
will create new element but not add it to DOM.
To add that element you need to use append() or appendTo() or insetAfter() or insertBefore() and so on.
It is better to use a function to:
function createElement(el, target) {
$(el).appendTo(target);
}
use the function like:
createElement('<div id="test" class="a b"></div>', 'body');
You can also append newly created element to any other target instead of body
.
I think following function will help you:
function createElement(el, prop, target) {
var props = prop.split('.'),
newelement = $(el),
id = '',
className = '';
$.each(props, function(i, val) {
if(val.indexOf('#') >= 0) {
id += val.replace(/^#/, '');
} else {
className += val + ' ';
}
});
if(id.length) newelement.attr('id', id);
if(className.length) newelement.attr('class', className.trim());
$(newelement).html('Newly born').appendTo(target);
}
createElement('div', '#test.a.b', '#con'); // will work for #test.a.b or, .a.b or, #test.a
DEMO