0

我有下面的代码,将问题/答案附加到 div。

它有效,但它以错误的顺序写入 div。它将任何新的 div 放在最后一个之前,因此编号变得无序,如下所示:

Question 3
Question 2
Question 1

我玩过 appendTo、append,但我所做的任何事情都不起作用。

任何帮助,将不胜感激。谢谢!

这是代码:

$(".questionButton").click(function () {
var parentId = $("button").closest("div").attr("id");
var newTextBoxDiv = $("<div>").attr("id", 'question' + questionCounter);
        $(this).after(newTextBoxDiv);
        newTextBoxDiv.after().html(
            "<table><tr>" +
            "<td>" +
            "<label>Question " + questionCounter + ": </label>" +
            "</td><td>" +
            "<input type='text' name='tbQuestion' id='tbQuestion" + questionCounter + "' value='' >" +
            "</td>" +
            "<td class='removeQuestion'>x</td>" +
            "</tr><tr><td>" +
            "<label>Answer: </label>" +
            "</td><td>" +
            "<input type='text' name='tbAnswer'" id='tbAnswer" + questionCounter + "' value='' >" +
            "</td></tr></table>");
        newTextBoxDiv.appendTo("#" + parentId);
        questionCounter++;
});

html:

<div id="questionBox">
    <div id="mcq" style="display: none;" class="questionTypeDiv">
        <input type="button" class="questionButton" value="Add Question" style="margin-top: 4px;" />
        <table></table>
    </div>
</div>
4

2 回答 2

1

您错误地将 div 附加在按钮之后,而不是您的:http <div id="mcq">: //jsfiddle.net/ZTuhn/1/

您还可以通过正确选择前面的问题 id 然后在其后附加来修复此错误。但是,这需要对您的初始 questionBox id 属性进行一些异常处理。

于 2013-04-16T16:38:58.983 回答
-1

要按顺序追加,您应该像这样使用 .append() :

$.each([1,2,3], function(i,v) {
    $('#' + parentId).append('<p>Question ' + v + '</p>')
});
于 2013-04-16T16:06:58.553 回答