2013-04-16 45 views
0

我有下面的代码附加问题/答案的股利。jquery appendTo html定购问题

它的工作原理,但它写入的股利错误的顺序。它把任何新的div最后一过,所以编号变得无序这样的:

Question 3 
Question 2 
Question 1 

我打得四处appendTo,追加,但任何事情我做不工作。

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

下面的代码:

$(".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> 
+2

[prepend()](http://api.jquery.com/prepend/)是否将它们按正确的顺序排列? – Leng

+0

你能提供['jsfiddle'](http://jsfiddle.net)的例子吗? – Dom

+1

'$(this)'是指什么?您需要发布所有代码,但根据您提供的内容,我们无法帮助您。 – Leng

回答

1

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

您也可以通过正确选择前面的问题ID修正此错误,然后再追加。但是,这将需要对您的初始questionBox id属性进行一些异常处理。

-1

要追加的订单,你应该使用.append()像这样:

$.each([1,2,3], function(i,v) { 
    $('#' + parentId).append('<p>Question ' + v + '</p>') 
});