使用JavaScript函数添加多个DIV元素

时间:2012-08-02 13:20:26

标签: javascript

我是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");

        }

感谢任何帮助。

5 个答案:

答案 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>

http://jsfiddle.net/9FMPv/9/

答案 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来说明这一点。