我是JS的新手,这就是为什么我要求一些帮助。我想创建多个嵌套的div元素,如下所示:
<div>
<div>
<div>
</div>
<div>
</div>
</div>
</div>
我已经创建了它们,但是我的导师在工作中希望我使用它可以实现的功能 代码更具可读性。
我已经尝试为每个创建的元素创建多个函数,但他告诉我他不喜欢它,并希望我尝试另一种方式。所以这就是我要求帮助的原因。 我已经尝试过了(这只是一个示例,没有权限显示实际代码......公司规则):
function firstContainerCreator(){
firstContainer= doc.createElement("div");
}
function innerContainerCreator(){
innerContainer= doc.createElement("div");
}
function innerContainer_imgCreator(){
innerContainer_img= doc.createElement("div");
}
function innerContainer_paragraphCreator(){
innerContainer_paragraph= doc.createElement("div");
}
感谢任何帮助。
答案 0 :(得分:0)
您需要创建一个DIV,然后将子项附加到它以获得嵌套结构:
// create the outer div
var parentDiv = document.createElement("div");
// create the inner divs
var childDiv1 = document.createElement("div");
var childDiv2 = document.createElement("div");
// now append the child divs to the parent
parentDiv.appendChild(childDiv1);
parentDiv.appendChild(childDiv2);
表示工作示例:http://jsfiddle.net/Nwc3s/9/
答案 1 :(得分:0)
您已通过document.createElement("div")
(document
而不是doc
)创建了div,但您需要将.appendChild()
创建到其父节点上。我建议不要试图将这些函数的创建包装成你原来的函数,直到你很好地理解它们是如何被创建和嵌套的。
See it in action ...
// The outer div:
var outer_container = document.createElement("div");
// Append it onto the body
document.body.appendChild(outer_container);
// Main inner div
var main_inner = document.createElement("div");
// Append to outer
outer_container.appendChild(main_inner);
// First innermost div
var first_inner = document.createElement("div");
// Second innermost div
var second_inner = document.createElement("div");
// append to main inner div
main_inner.appendChild(first_inner);
main_inner.appendChild(second_inner);
// etc...
答案 2 :(得分:0)
是的,那么问题是什么?您已经创建了元素,现在通过Javascript的本地appendChild
方法附加它们:
parent = document.getElementById("parentdiv");
parent.appendChild(firstContainer);
答案 3 :(得分:0)
function createDivNode(parentNode){
// in case no parent div use <body> as parent
if (!parentNode) var parentNode = document.body;
var el = document.createElement('div');
parentNode.appendChild( el );
return el;
}
var outer = createDivNode();
var inner1 = createDivNode(outer);
var inner2 = createDivNode(outer);
输出:
<body>
<div>
<div></div>
<div></div>
</div>
</body>
答案 4 :(得分:0)
下面是一个函数,它将为每个子div创建一个父容器,3个子div和一个grandchild div。
var createDivs = (function() {
var parent = document.createElement('div'),
children = 3,
// change this number to reflect how many child divs you need
gchildren = 3,
// same with this
i = 0;
document.body.appendChild(parent);
this.appendGChild = function(child) {
console.log(child);
var gchild = document.createElement('div'),
i = 0;
for (i = gchildren; i--;) {
child.appendChild(gchild);
}
}
for (i = children; i--;) {
var child = document.createElement('div');
parent.appendChild(child);
appendGChild(child);
}
})();
这是一个jsFiddle来说明这一点。