Javascript 如何使用jquery在15秒后以html自动显示卡中的每个td数据
我在表中动态显示表中的数据,我grt json数据并在html表中动态显示。该表中有一张html卡,因此我想在15秒后显示该卡中的每个tr数据,即加载时第一个tr数据显示在卡中,15秒后第二个tr数据显示在同一张卡中,第一个tr数据删除。我想每隔15秒显示卡中的每个tr数据 我的代码Javascript 如何使用jquery在15秒后以html自动显示卡中的每个td数据,javascript,jquery,json,dynamic,html-table,Javascript,Jquery,Json,Dynamic,Html Table,我在表中动态显示表中的数据,我grt json数据并在html表中动态显示。该表中有一张html卡,因此我想在15秒后显示该卡中的每个tr数据,即加载时第一个tr数据显示在卡中,15秒后第二个tr数据显示在同一张卡中,第一个tr数据删除。我想每隔15秒显示卡中的每个tr数据 我的代码 <!DOCTYPE html> <html> <meta name="viewport" content="width=device-width, ini
<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<head></head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style type="text/css" media="all">
body {
text-align: center;
box-sizing: border-box;
}
.card {
box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
width: 200px;
padding: 10px;
margin: 10px;
}
.tr {
background: blue;
color: white;
transition: background .3s;
}
.table {
border-collapse: collapse;
border: 1px solid #ddd;
}
.table td {
padding: 10px 15px;
}
</style>
</head>
<body>
<div class="card">
<span id="value">25 </span><span id="unit">ppm</span>
<p id="parameter">Sodium Oxide</p>
</div>
<div class="table-responsive">
<table class="table" border="1">
<thead>
<tr>
<th scope="col">Parameter</th>
<th scope="col">Alias</th>
<th scope="col">Cordinates</th>
<th scope="col">Location</th>
</tr>
</thead>
<tbody id="scroll">
</tbody>
</table>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$.getJSON('./data.json', function(data) {
console.log(data)
var tdata = '';
$.each(data, function(key, value) {
console.log(value.deviceId)
tdata += '<tr>' + '<td>' + value.deviceId + '</td>' + '<td>' + value.aliasname + '</td>' + '<td>' + value.cordinates + '</td>' + '<td>' + value.location + '</td>' + '</tr>'
})
})
})
</script>
</body>
</html>
身体{
文本对齐:居中;
框大小:边框框;
}
.卡片{
长方体阴影:0.3pxRGBA(0,0,0,0.5);
宽度:200px;
填充:10px;
利润率:10px;
}
.tr{
背景:蓝色;
颜色:白色;
过渡:背景。3s;
}
.桌子{
边界塌陷:塌陷;
边框:1px实心#ddd;
}
.表td{
填充:10px 15px;
}
25 ppm
氧化钠
参数
别名
科迪酸盐
位置
$(文档).ready(函数(){
$.getJSON('./data.json',函数(数据){
console.log(数据)
var-tdata='';
$。每个(数据、函数(键、值){
console.log(value.deviceId)
tdata+=''+''+值.deviceId+''+''+值.aliasname+''+''+值.cordinates+''+''+值.location+'+''
})
})
})
您需要在设置超时后调用每个DOM修改。在这里,我使用async
/await
语法:
constbody=$('#scroll');
const sleep=(毫秒)=>新承诺(resolve=>setTimeout(resolve,毫秒));
$.getJSON('./data.json',异步函数(数据){
控制台日志(数据);
//永久循环接收到的值
而(1){
//对于数据中的每个值,替换表数据
//使用包含数据值的新tr
for(数据的常量值){
console.log(value.deviceId);
html(`${value.deviceId}${value.aliasname}${value.cordinates}${value.location}`);
等待睡眠(15000);
}
}
});
谢谢你的回答,但问题是在这个函数中,它每15秒显示一次td。我不希望tr每15秒追加一次。我想每15秒显示一次上面HTML卡中每行的表数据。你的意思是每15秒更新一次完整的表数据(使用新的getJSON
调用)?永远?或者你的意思是用下一个替换
,而不是追加新的?我想在正常情况下追加表,但我想在上面不同的html卡中显示该行中的数据。该表按原样正常追加,但我希望每隔15秒显示html卡中每行的数据。。当页面在15秒后加载该卡中显示的第一个tr数据时,第二个tr数据在该卡中显示,如wise all trSo,您希望表格完全填充(如您在问题中所做的那样),但所有行都隐藏,然后每隔15秒显示一个新行并删除前一行?