0

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

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

4

1 回答 1

1

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

您没有将 var 放在变量前面,使它们成为全局变量。cloneForPrint 函数正在获取 cloneQ 中定义的变量。

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

CloneQ 确实附加到问题父级,但 cloneForPrint 然后将其移动到其他地方。

——老答案——

这里还不足以解决问题所在。我的第一个猜测是该元素与该question元素具有相同的父questionprint级。

根据给出的代码,cloneQ绝对应该附加到question父级。因此,要给出您指定的 DOM 外观,它可能看起来不像您所期望的那样。

于 2012-10-08T05:44:03.273 回答