2013-04-16 48 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>') 
});