Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery克隆具有动态内容的元素_Jquery_Dynamic - Fatal编程技术网

Jquery克隆具有动态内容的元素

Jquery克隆具有动态内容的元素,jquery,dynamic,Jquery,Dynamic,我被困在这里了!我在一个div中动态创建了一些元素,需要对这些元素进行“复制”,或者更像是该元素的“第二个版本”。它的主要功能是创建一个包含问题和答案的测验,但我需要使它能够在一个测验中创建多个问题和答案 以下是Jquery: var QuestionCreator = "QuestionCreator" + x++; $(".modal-body-createquiz").html("<div id='QuestionCreator'><fieldset>

我被困在这里了!我在一个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');
    });
有没有人对这里该做什么有什么提示

或者你需要更多的代码来了解情况


非常感谢

希望这对你有帮助

我在这里使用的逻辑是,我正在创建您的第一个div的克隆,即“QuestionCreator1”。我保留了一个隐藏字段来保存当前ID(递增部分)。我使用该方法和您的类名“QuestionCreator”来获取最后一个元素。然后在从“QuestionCreator1”克隆后更新其(最后一个元素的id)id


希望这对你有帮助

我在这里使用的逻辑是,我正在创建您的第一个div的克隆,即“QuestionCreator1”。我保留了一个隐藏字段来保存当前ID(递增部分)。我使用该方法和您的类名“QuestionCreator”来获取最后一个元素。然后在从“QuestionCreator1”克隆后更新其(最后一个元素的id)id


还可以在创建的元素之间来回“切换”扫描JSFIDLE?您的选择器(如
)。克隆元素后,NewQuizAnswersGroup
可能会导致问题。但在那里,添加新的替代品是不起作用的。也许它不会“说那么多…”,所以我需要在克隆它们时使选择器像
.NewQuizAnswersGroup
一样唯一,并且可以“切换”在创建的元素之间来回扫描您发布的JSFIDLE?您的选择器(如
).NewQuizAnswersGroup
可能会在克隆元素后导致问题,但在那里添加新的替代品不起作用。也许它没有“说那么多…”,所以我需要在克隆它们时使选择器像
.NewQuizAnswersGroup
一样唯一?如果需要更多说明,请告诉我谢谢!但它仍然在创造一个100%的老#QuestionCreator的克隆,因此如果我在第一个问题上添加“更多备选方案”,那么在第二个问题上就会添加更多aswell@Kim,您正在创建prev元素的克隆。所以你会得到一份同样的副本。你能再解释一下你的要求吗?好吧,对不起,如果我不清楚我的问题:)我想得到的是这个。1.)创建包含测验中第一个问题的#问题创建者。在这里,您可以添加任意多的备选方案。2.)单击#addNewQuizCreateQuestion创建新问题。不是#QuestionCreator的克隆,而是具有相同的功能。在这里,你可以在测验中创建问题2。以同样的方式添加更多问题。而且还能够在问题1和2、3等之间“快速切换”。因此,如果我在测验中附加新的“备选方案”,它应该附加到新的#问题创建者,并且以某种方式用ID等标识每个问题,以便我以后可以获得它们。如果需要更多澄清,请让我知道谢谢!但它仍然在创造一个100%的老#QuestionCreator的克隆,因此如果我在第一个问题上添加“更多备选方案”,那么在第二个问题上就会添加更多aswell@Kim,您正在创建prev元素的克隆。所以你会得到一份同样的副本。你能再解释一下你的要求吗?好吧,对不起,如果我不清楚我的问题:)我想得到的是这个。1.)创建包含测验中第一个问题的#问题创建者。在这里,您可以添加任意多的备选方案。2.)单击#addNewQuizCreateQuestion创建新问题。不是#QuestionCreator的克隆,而是具有相同的功能。在这里,你可以在测验中创建问题2。以同样的方式添加更多问题。而且还能够在问题1和2、3之间“快速切换”。因此,如果我在测验中添加新的“备选方案”,它应该添加到新的#问题创建者,并且以某种方式用ID等标识每个问题,以便我以后可以获取它们。
    $("#addNewQuizCreateQuestion").click(function() {
    $("#QuestionCreator").clone().appendTo(".modal-body-createquiz");
    }); 
 $("#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);
        });