我正在尝试在容器内创建一些div,但我无法弄清楚如何在主容器中嵌套已创建的div。在html之前创建容器是否也可能或更好?
JS
function createDiv(numberOfDivs) {
var i = 0;
var newElement = [];
var mainContainer = document.createElement('div');
mainContainer.innerHTML = 'MAIN CONTAINER';
mainContainer.className = 'main';
document.body.appendChild(mainContainer);
for (i; i < numberOfDivs; i++) {
newElement[i] = document.createElement('div');
newElement[i].style.backgroundColor = '#' + Math.floor(Math.random() * 16777215).toString(16);
newElement[i].className = 'box';
newElement[i].id = (i + 1);
newElement[i].textContent = 'this is div number: ' + (i + 1);
document.body.appendChild(newElement[i]);
}
};
createDiv(10);
答案 0 :(得分:2)
是的,您可以提前在html中创建容器,正如其他人所建议的那样。然后你可以将你的div嵌套在那个容器里。
<html><body><div id="mainContainer" ></div></body></html>
正如其他人建议你可以应用必要的css,以便在必要时隐藏它,直到你希望它可见。
然后javascript在mainContainer中嵌套div:
function createDiv(numberOfDivs){
var $mainContainer = $("#mainContainer");
for (i; i < numberOfDivs; i++) {
var newDiv = $("<div class='box' />");
//...you can add whatever attributes to the div that you want...
$mainContainer.append(newDiv);
}
}
答案 1 :(得分:0)
如果可以,您应该在不使用javascript的情况下创建它们。否则,您要将新元素附加到document.body
。只需将其更改为mainContainer
。
答案 2 :(得分:0)
您也可以通过Javascript(.appendChild
)创建它们。如果需要,您可以先在HTML中创建它们(不使用Javascript),然后在必要时通过display: none
隐藏它们,然后添加display: block
使其可见。
答案 3 :(得分:0)
感谢所有帮助,指向其他主题的链接帮助我忘记将孩子附加到mainContainer。
function createDiv(numberOfDivs) {
var i = 0;
var newElement = [];
var mainContainer = document.getElementById('main');
for (i; i < numberOfDivs; i++) {
newElement[i] = document.createElement('div');
newElement[i].style.backgroundColor = '#' + Math.floor(Math.random() * 16777215).toString(16);
newElement[i].className = 'box';
newElement[i].id = (i + 1);
// newElement[i].textContent = 'this is div number: ' + (i + 1);
mainContainer.appendChild(newElement[i]);
}
};
createDiv(10);