可以合并document.createElement

时间:2014-11-13 00:06:58

标签: javascript

每次都可以创建多个元素而无需重写document.createElement() ..

document.createElement("article");
document.createElement("footer");
document.createElement("header");
document.createElement("hgroup");
document.createElement("nav");

这些会很棒..

document.createElements("article,footer,header,hgroup,nav");

var elems = ["article","footer","header","hgroup","nav"];
document.createElement(elems);

2 个答案:

答案 0 :(得分:4)

您可以创建自己的方法:

function createElements( arr ) {
    var fragment = document.createDocumentFragment();
    arr.forEach(function creator ( tagname ) {
        fragment.appendChild( document.createElement( tagname ) );
    });
    return fragment;
}

然后像这样称呼它:

createElements( [ "p", "div", "footer" ] );

这将返回documentFragment,您可以将其作为子项追加到DOM中的任何位置。

我不知道为什么你想要这样做:)

答案 1 :(得分:3)

您可以创建所需的元素标记名称数组:

var names = ["article", "footer", "header", "hgroup", "nav"];

然后使用Array.map函数创建一个已创建元素的数组:

var elements = names.map(document.createElement, document);

但是,你应该记住,在内部这仍然使用循环反复调用createElement函数。它只是在您的代码中看起来更好。

编辑: 您需要将this参数指定为document,以便可以在正确的上下文中调用createElement