jQuery Make Example
by andypotanin
HTML
<body></body>
JavaScript
$.extend({
make: function(){
var $elem,text,children,type,name,props;
var args = arguments;
var tagname = args[0];
if(args[1]){
if (typeof args[1]=='string'){
text = args[1];
}else if(typeof args[1]=='object' && args[1].push){
children = args[1];
}else{
props = args[1];
}
}
if(args[2]){
if(typeof args[2]=='string'){
text = args[2];
}else if(typeof args[1]=='object' && args[2].push){
children = args[2];
}
}
if(tagname == 'text' && text){
return document.createTextNode(text);
}else{
$elem = $(document.createElement(tagname));
if(props){
for(var propname in props){
if (props.hasOwnProperty(propname)) {
if($elem.is(':input') && propname == 'value'){
$elem.val(props[propname]);
} else {
$elem.attr(propname, props[propname]);
}
// give ie a hook to style inputs... sigh
if(window.attachEvent && !window.opera){ // is IE7 and down
if($elem.is(':input')){
$elem.addClass('IE-input-' + $elem.attr('type'));
}
...