创建多个元素

时间:2015-09-19 17:01:47

标签: javascript createelement

JavaScript

var textBlock = document.createElement('div');
textBlock.setAttribute('class', 'finalBlock');

var addFinalBlock = document.getElementsByClassName('block')[0];
addFinalBlock.appendChild(textBlock);

textBlock.innerHTML = "Make this block a text block";

// -------
var textBlock2 = document.createElement('div');
textBlock2.setAttribute('class', 'finalBlock');

var addFinalBlock2 = document.getElementsByClassName('block')[0];
addFinalBlock2.appendChild(textBlock2);

textBlock2.innerHTML = "Make this block a text block2";

// -------
var textBlock3 = document.createElement('div');
textBlock3.setAttribute('class', 'finalBlock');

var addFinalBlock3 = document.getElementsByClassName('block')[0];
addFinalBlock3.appendChild(textBlock3);

textBlock3.innerHTML = "Make this block a text block3";

// -------
var textBlock4 = document.createElement('div');
textBlock4.setAttribute('class', 'finalBlock');

var addFinalBlock4 = document.getElementsByClassName('block')[0];
addFinalBlock4.appendChild(textBlock4);

textBlock4.innerHTML = "Make this block a text block4";

我想用不同的文字创建4个元素。这个班需要保持不变。我想我正在做很多代码。

也许任何人都有一些信息如何让这段代码看起来更美观,更高效?

祝福 谢谢!

3 个答案:

答案 0 :(得分:1)

我认为更好的方法是仅使用fragment更新DOM。

var docFrag = document.createDocumentFragment();

for(var i = 0; i < divs.length; i++) {
  docFrag.appendChild(divs[i]); // Note that this does NOT go to the DOM
} 
document.body.appendChild(docFrag); // Appends all divs at once

答案 1 :(得分:0)

此代码可以正常工作。如果要在同一HTML标签上添加多个元素。

            var element1=  "<br/>"
            var element2="<input type='text' />"
            var element3= "<br/>"
            var onLine = document.getElementById("onLine"); /* This is <ul id="onLine"></ul> */
            var on = document.createElement("div");

            on.innerHTML = element1+ element3+ element3

            on.setAttribute("style", "background-color:rgba(0, 0, 
            0, 0.3);color:white;border-radius:40px;margin- 
            bottom:30px;padding: 10px;width: 230px;");

            on.appendChild(document.createTextNode('Custom text'));

            onLine.appendChild(on);

答案 2 :(得分:0)

您可以创建一个 for 循环来创建多元素

let elementsCount = 3;
for (let i = 0; i < elementsCount; i++) {
     const element = document.createElement('div');
     document.body.appendChild(element);
}