使用Javascript动态创建两个div

时间:2014-03-22 08:56:46

标签: javascript

我试图在一个功能中创建两个div,但我无法弄清楚如何做到这一点。 我已经动态创建了div,并试图在一个函数中创建两个div。

感谢您的帮助。 :)

1 个答案:

答案 0 :(得分:0)

原生javascript中没有insertAfter()函数,以下是如何为各种相同的工作创建函数。

//create the passed element with id and class
function createElement(tag, id, className){
    var elem = document.createElement(tag);
    if(typeof id != 'undefined'){
        elem.id = id;
    }

    if(typeof className != 'undefined'){
        elem.className = className;
    }

    return elem;
}

//create div and submit tag with passed id and class
function createDivs() {
    var divTag = createElement('div', 'textarea', 'divdrag');
    var textAreaElm = createElement('textarea', 'myTextarea', 'textarea');
    divTag.appendChild(textAreaElm);
    par = document.getElementById('stage');
    insertAfter(par, divTag);

    createDiv(par, 'insertAfter');
    //put insertBefore--^---here when you need insertBefore to append
}

//create div and it's child button
function createDiv(par, where){
    var divTag = createElement('div', 'submit', 'divdrag');

    var btn = document.createElement("button");
    var t = document.createTextNode("Submit");
    btn.className = "btn";
    btn.appendChild(t);
    divTag.appendChild(btn);
    if(where == 'insertAfter'){
        insertAfter(par, divTag);
    }else if(where == 'insertBefore'){
        par.insertBefore(divTag, par.firstChild);
    }
}

//insertAfter function as there is no native support by js
function insertAfter(referenceNode, newNode) {
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}

createDivs();

DEMO