动态内容的Jquery克隆元素

时间:2013-04-29 08:56:02

标签: jquery dynamic

我被困在这里!我在div中动态创建了元素,我需要制作一个" copy"或者更像是"第二版"那个元素。这个主要功能是创建一个带问题和答案的测验,但我需要在一个测验中创建多个问题和答案。

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

在这里我尝试克隆已创建的元素,但这需要是唯一的,因此在一个克隆中发生的事情不会影响其他克隆。所以它就像&#34;从头开始&#34;对于每个新创建的克隆。

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

有没有人暗示该怎么做?

或者您需要更多代码才能获得图片?

非常感谢提前!

1 个答案:

答案 0 :(得分: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);
        });