0

divにクローンを作成し、他のdiv(その親)に追加しようとしています。これにはclonenodeを使用していますが、機能していないようです。最初の関数でdivのクローンを作成し、2番目の関数で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

4

1 に答える 1

1

編集:グローバル変数が問題です。

変数の前にvarを付けていないので、変数をグローバルにします。cloneForPrint関数は、cloneQで定義された変数を取得しています。

すべての変数を適切に初期化すると、問題がどこにあるかを示すエラーが発生します。

CloneQは確かに親の質問に追加していますが、cloneForPrintはそれを別の場所に移動します。

-古い答え-

ここでは、問題が何であるかを理解するのに十分ではありません。私の最初の推測は、question要素が要素と同じ親を持っているということquestionprintです。

与えられたコードに基づいて、cloneQ間違いなくquestionの親に追加する必要があります。したがって、指定した外観を与えるために、DOMはおそらく期待したものとは異なります。

于 2012-10-08T05:44:03.273 に答える