1

我被困在这里了!我在 div 中动态创建了元素,我需要对其进行“复制”,或者更像是该元素的“第二个版本”。它的主要功能是创建一个带有问题和答案的测验,但我需要在一个测验中创建多个问题和答案。

这是jQuery:

    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');
    });

在这里,我试图对创建的元素进行克隆,但这需要是唯一的,所以在一个克隆中发生的事情不会影响其他的。因此,对于每个新创建的克隆,这就像“从头开始”。

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

有没有人暗示在这里做什么?

或者您需要更多代码来获取图片?

提前谢谢了!

4

1 回答 1

1

希望这会对你有所帮助。

JSfiddle

我在这里使用的逻辑是,我正在创建您的第一个 div 的克隆,即“QuestionCreator1”。我保留了一个隐藏字段来保存当前 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 回答