我试图克隆到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);
}
答案 0 :(得分:1)
编辑:全局变量是问题所在。
您不是将var放在变量前面,而是将它们变为全局变量。 cloneForPrint函数正在拾取cloneQ中定义的变量。
正确初始化所有变量,你会得到一些错误,指出问题所在。
CloneQ确实附加到父母的问题上,但是cloneForPrint会将其移到其他地方。
- 旧答案 -
这里没有足够的方法解决问题所在。我的第一个猜测是question
元素与questionprint
元素具有相同的父元素。
根据给出的代码,cloneQ
肯定会附加到question
的父级。因此,为了给出你已经指定DOM的外观可能看起来不像你期望的那样。