多くのノード作成を行う場合、通常はそのための関数を作成するので、同じことを繰り返す必要はありません。
// String, Object, String
function createElement(tagName, attribs, text) {
var elm = document.createElement(tagName), a;
if (attribs) // if given
for (a in attribs) // for each property
if (attribs.hasOwnProperty(a)) // that is not inherited
elm.setAttribute(a, attribs[a]); // set attribute
if (text) // if given
elm.appendChild(document.createTextNode(text)); // append text
return elm; // node out
}
はるかに簡単になりました。
// create the elements
var span = createElement('span', {'class': 'ABC'}),
img = createElement('img', {'src': 'http://www.google.com/favicon.ico'});
span.appendChild(img); // put image in span
document.getElementById('text').appendChild(span); // append wherever