1

私はここで立ち往生しています!その要素の「コピー」を作成する必要がある、またはその要素の「第 2 バージョン」のようなものを作成する必要がある要素を div 内に動的に作成しました。これの主な機能は、質問と回答を含むクイズを作成することですが、1 つのクイズで複数の質問と回答を作成できるようにする必要があります。

Jクエリは次のとおりです。

    var QuestionCreator = "QuestionCreator" + x++;
    $(".modal-body-createquiz").html("<div id='QuestionCreator'><fieldset><div class='row-fluid'><div class='span12'><div class='control-group'><label>Your Question:</label><div class='controls'><input type='text' class='input-fluid' id='NewQuizQuestion'></div></div></div><legend>Answers:</legend><div class='control-group'><label class='checkbox pull-right'><input type='checkbox' id='NewQuizRemoveAlts'> Remove Alternatives</label></div><div class='NewQuizNotice'></div><div class='NewQuizAnswersGroup'></div><a href='#' id='addNewAltRadio' class='btn pull-right'><i class='fa-icon-plus-sign'></i> Create new alternative</a></div></fieldset></div>").hide().fadeIn('slow');

    var newAnswerAlt = "appendAnswerAltRadio" + i++;
    $("<div><div class='controls'><input type='text' class='answerAltRadiobtn' data-type='answer' class='input-fluid' name='txtAnswer"+ n++ +"'> <label class='checkbox'><input type='checkbox' id='QuizCheckbox"+ c++ +"'> Correct Answer</label></div></div>").attr({id: newAnswerAlt, class: ''}).prependTo(".NewQuizAnswersGroup").hide().fadeIn('slow');
    });
    $(this).on('click', '#addNewAltRadio', function () {
    var newAnswerAlt = "appendAnswerAltRadio" + i++;
    $("<div><div class='controls'><input type='text' class='answerAltRadiobtn' data-type='answer' class='input-fluid' name='txtAnswer"+ n++ +"'> <label class='checkbox'><input type='checkbox' id='QuizCheckbox"+ c++ +"'> Correct Answer</label></div></div>").attr({id: newAnswerAlt, class: ''}).prependTo(".NewQuizAnswersGroup").hide().fadeIn('slow');
    });

ここでは、作成された要素のクローンを作成しようとしていますが、これは一意である必要があるため、1 つのクローンで発生したことが他のクローンに影響を与えることはありません。つまり、新しく作成されたクローンごとに「ゼロから始める」ようなものです。

    $("#addNewQuizCreateQuestion").click(function() {
    $("#QuestionCreator").clone().appendTo(".modal-body-createquiz");
    }); 

ここで何をすべきかについてのヒントはありますか?

または、画像を取得するためにさらにコードが必要ですか?

よろしくお願いします!

4

1 に答える 1

1

これがあなたを助けることを願っています。

JSフィドル

ここで使用したロジックは、「QuestionCreator1」である最初の div のクローンを作成しているようなものです。現在の ID (インクリメント部分) を保存するための隠しフィールドを保持しています。last()メソッドとクラス名「QuestionCreator」を使用して、最後の要素を取得しました。次に、「QuestionCreator1」から複製した後、その (最後の要素の ID) ID を更新しました。

 $("#addNewQuizCreateQuestion").click(function() {
             var currentId=$("#currentId").val();
            var currentIdInt=parseInt(currentId);
            currentIdInt++;
            $("#currentId").val(currentIdInt);
        $("#QuestionCreator1").clone().appendTo(".modal-body-createquiz");
            $(".QuestionCreator").last().attr("id","QuestionCreator"+currentIdInt);
        }); 
于 2013-04-29T10:04:48.440 に答える