是否可以使用cloneNode克隆多个div?

时间:2012-10-08 05:28:54

标签: javascript clone

我试图克隆到div并将它们附加到其他div(他们的父母)。我为此使用了clonenode,但它似乎不起作用。它克隆第一个函数中的div并将其附加到第二个函数中div的父级!不确定我做错了什么。 这是代码(* 编辑: * var添加):

function cloneQ() {
    //Cloning questions and shit
    cloneQ.id = (cloneQ.id || 0) + 1;
    var question = document.getElementById("question");
    var clone = question.cloneNode(true);
    var numberOfQuestions = $('.question').length;
    var id = "questioncon" + cloneQ.id;
    clone.id = id;
    question.parentNode.appendChild(clone);
    var inid = "question" + cloneQ.id;
    var optionid = "optionsdiv" + cloneQ.id;
    $('#' + id + ' ' + '.' + 'questionin').attr('id', inid);
    $('#' + id + ' ' + '.' + 'options').attr('id', optionid);
    $('#' + id + ' h2').html('Question ' + cloneQ.id);

    //Question Cloned
    }

function cloneforPrint() {
    cloneforPrint.id = (cloneforPrint.id || 0) + 1;
    var questionprint = document.getElementById("questionprint");
    var cloneprint = questionprint.cloneNode(true);
    var printid = "questionprint" + cloneforPrint.id;
    cloneprint.id = printid;
    questionprint.parentNode.appendChild(clone);
    var printinid = "thequestionprint" + cloneforPrint.id;
    $('#' + printid + ' ' + '.' + 'thequestionprint').attr('id', printinid);
}

现场:http://bit.ly/R8hB2m

1 个答案:

答案 0 :(得分:1)

编辑:全局变量是问题所在。

您不是将var放在变量前面,而是将它们变为全局变量。 cloneForPrint函数正在拾取cloneQ中定义的变量。

正确初始化所有变量,你会得到一些错误,指出问题所在。

CloneQ确实附加到父母的问题上,但是cloneForPrint会将其移到其他地方。

- 旧答案 -

这里没有足够的方法解决问题所在。我的第一个猜测是question元素与questionprint元素具有相同的父元素。

根据给出的代码,cloneQ肯定会附加到question的父级。因此,为了给出你已经指定DOM的外观可能看起来不像你期望的那样。