<ole>
Det er ikke helt så enkelt, da IE før version 9 havde en meget sær måde at forholde sig til denne del af DOM specifikationen på.
Du kan skrive denne funktion:
var createElm = (function(doc){
try {
var o = doc.createElement("<input type='text'>");
createStd = o = null;
return createIE;
}
catch(e) {
createIE = null;
return createStd;
}
function createIE(sTag, oOpts) {
var a = [], i = 0;
for (x in oOpts) {
if (x=="css") a[i++] = 'style="'+oOpts[x]+'"';
else a[i++] = x+'="'+oOpts[x]+'"';
}
return doc.createElement("<"+sTag+(a.length>0?" "+a.join(" "):"")+">"+("input,link,img,area,".indexOf(sTag+",")?"":"</"+sTag+">"));
}
function createStd(sTag, oOpts) {
var x, elm = doc.createElement(sTag);
for (x in oOpts) {
if (x=="css") elm.style.cssText = oOpts[x];
if (x=="class") elm.className = oOpts[x];
else elm.setAttribute(x, oOpts[x]);
}
return elm;
}
})(document);
Så vil du kunne oprette et INPUT element og indsætte det i elementet med
id="fooBar" med følgende kode:
var oOpts = {
"type": "text",
"name": "fornavn",
"value": "Skriv dit navn",
"class": "my-input-class",
"css": "width:200px;background:#ff0"
};
var elm = createElm("input" oOpts);
document.getElementById("fooBar").appendChild(elm);
/mvh
</bole>