我在jQuery中的自动刷新功能动态地更新一个表.不幸的是,更新后的字符串总是出现在表的前面(头上方),原因是我在代码中看到了一些原因:
html:
<div class="container"><h1>Refresh Test:</h1></div>
<div id="table_1" class="container">
<table class="table" style="width: 100%">
<thead><tr><th>1</th><th>2</th><th>time</th></tr></thead>
<tbody>
<div id="tablerow" > </div>
</tbody>
</table>
</div>
jQuery更新函数:
<script type="text/javascript">function refreshTable() {
$.get(
"/foo", "",
function(data) {
$("#tablerow").html("<tr><td>" + JSON.parse(data).D1 + "</td><td>" + JSON.parse(data).D2 + "</td><td>" + JSON.parse(data).D3 + "</td></tr>")
},
)
};
window.setInterval(refreshTable, 3000)</script>
检查时,我看到<tr> .... </tr>
在::before
部分下。另外:如果我在前面创建空的表行并为每个<td>
添加行(比如:在脚本中使用<tr><td><div id="NAME"></div></td></tr>
,而不是在tablerow
中添加#NAME
,并且只有一个值)。
发布于 2020-04-09 14:09:11
div不可能是tbody的孩子。给tbody id“tablerow”,删除div并重试
发布于 2020-04-09 14:03:40
你可以试试下面的代码..。
<script type="text/javascript">
function refreshTable() {
$.get(
"/foo", "",
function(data) {
if($(".table tbody").children().length > 0)){
$(".table").append("<tr><td>" + JSON.parse(data).D1 + "</td><td>" + JSON.parse(data).D2 + "</td><td>" + JSON.parse(data).D3 + "</td></tr>")
}
else{
$(".table").html("<tr><td>" + JSON.parse(data).D1 + "</td><td>" + JSON.parse(data).D2 + "</td><td>" + JSON.parse(data).D3 + "</td></tr>)
}
},
)
};
window.setInterval(refreshTable, 3000)
</script>
https://stackoverflow.com/questions/61122661
复制相似问题