Я построил некоторый ajax, который возвращает часть каталога продуктов, и я пытаюсь вывести xml в документ, и до сих пор вот что у меня есть:
$("#catalog").append("<table><tr><th></th><th>Item Name</th><th>Price</th><th>Description</th></tr>");
$(data).find("item").each(function() {
$("#catalog").append("<tr>"+
"<td style='valign:top'><img src='"+$(this).find("["link").text()+"' /></td>"+
"<td>"+$(this).find("title").text()+"</td>"+
"<td>"+$(this).find("price").text()+"</td>"+
"<td style='valign:top'>"+$(this).find("description").text()+"</td>"+
"</tr>"
);
});
$("#catalog").append("</table>");
Я ожидаю, что это запишет начало таблицы в документ, затем каждую строку данных и, наконец, в конце.Вместо этого, когда я просматриваю источник на странице, я получаю это ...
<div id="catalog">
<table>
<tr>
<th></th>
<th>Item Name</th>
<th>Price</th>
<th>Description</th>
</tr>
</table>
<tr>
<td style="valign:top"><img src="http://image1.jpg"></td>
<td>Item1</td>
<td>Price1</td>
<td style="valign:top">Description1</td>
</tr>
<tr>
<td style="valign:top"><img src="http://image2.jpg"></td>
<td>Item2</td>
<td>Price2</td>
<td style="valign:top">Description2</td>
</tr>
<tr>
<td style="valign:top"><img src="http://image3.jpg"></td>
<td>Item3</td>
<td>Price3</td>
<td style="valign:top">Description3</td>
</tr>
</div>
Обратите внимание, как данные добавляются после конца таблицы, даже если строка .append ("")это ПОСЛЕ. .each ().
Это заставляет меня думать, что код выполняется не по порядку, и что функция .each () демонстрирует некоторый параллелизм.Это сбивает меня с толку, так как в jquery api не упоминаются обратные вызовы, поэтому я немного растерялся относительно того, что именно происходит, и что я должен сделать, чтобы это правильно отображалось.Любая помощь будет высоко ценится.