【发布时间】:2016-12-27 16:31:46
【问题描述】:
下面的代码是我做的解释。所以它不是一个完整的。我写的刚好足以解释我的问题。
html 加载 -> 调用 ajax -> json(response) -> 通过 jquery 将 json 附加到表行
每当我使用 ajax 并使用响应数据更新页面并使用 jquery 在页面中附加一些元素时,它都会在屏幕上非常快速地显示在 jquery 中逐个附加的过程。
1.用jquery在for循环中添加所有元素后,我可以一次显示所有表格吗?
2.在我的示例代码中,它在文档准备好后第一次使用$(document).ready() 调用ajax。在表中显示数据的方法似乎很慢,因为它在加载所有 html 页面后调用 ajax,然后使用 ajax 响应更新 html 的某些部分。 ajax的使用方式不对???
<html>
<body>
I have to html syntax to show data list.
<table id="example">
<thread>
<th>order</th>
<th>title</th>
</thread>
<tbody>
</tbody>
</table>
<button onclick="javascript:loadajaxfunction(parameter to update)">Update</button>
</body>
<script>
$(document).ready(function() {
loadajaxfunction();
});
loadajaxfunction = function(parameter to update) {
$.ajax({
url:
type:
data:
success: function(json){
$tbody = $("#example").find('tbody')
$row = $('<tr>');
$.each(json.objects, function(key, value){
$col = $('td>');
$col.text(value);
$row.append($col);
}
$tbody.append($row);
}
});
</script>
</html>
【问题讨论】:
-
原因是因为这就是你正在做的,在
$tbody上的.each()循环中逐一添加行。尝试先将表格的html构建为字符串,然后使用.html( $myVarContainingCustomStringHoldingHtmlForNewTableData )将#example的html设置为新的表格数据 -
很难相信您可以看到添加的每个单独元素。你只做一个追加。至于显示整个表格,你可以用css隐藏它并在回调中显示表格
-
我明白了。谢谢你。例如,我编写了
$col = $('<td'>); $href = $('<a>'); $href.addClass("custom class"); $href.attr("hre", "url"); $href.text("value i want to put"); $col.append($href); $row.append($addcol);之类的代码。因为我认为它比这种方式更容易编辑,比如在一个字符串中添加所有内容:var example = "<tr><td><a href="url class="custom class">value i want to put</a></td> <tr>"我认为以后编辑和管理很讨厌。你怎么看?
标签: javascript jquery html ajax