在服务器端,我每3秒钟发出数据库的最后10行;

setInterval(function() {
              connection.query("SELECT * FROM report ORDER BY id DESC limit 10", function(err, rows) {
                if (err) console.log(err);
                else {
                  console.log("Last 10 record emitted.");
                //  console.log("rows: " + JSON.stringify(rows, null, 3));
                  io.emit("last_list", rows)
                }
              });
            }, 3000);

在客户端,我将这些行追加到表中;
  socket.on('last_list', function(rows) {
    for (var i = 0; i < rows.length; i++) {
      var row = rows[i];

      $('#myTable').append('<tr><td>' + row.id + '</td><td>' + row.fabrika + '</td><td>' +
      row.kumes + '</td><td>' + row.makina + '</td><td>' + row.kat + '</td><td>' +
      row.sol_sag + '</td><td style="color: rgba(25, 44, 44, 1); font-weight: bolder;">' +
      row.adet + '</td></tr>');

    }
  });

我的问题是,如何更新表而不是每3秒添加新行?

最佳答案

每次追加前,都要清除表体。您可以给tbody一个ID并像$(“#tbody”).html(“”)那样清除它,或者您可以使用以下方法。

socket.on('last_list', function(rows) {
$('#myTable tbody').html("");
for (var i = 0; i < rows.length; i++) {
  var row = rows[i];



  $('#myTable').append('<tr><td>' + row.id + '</td><td>' + row.fabrika + '</td><td>' +
  row.kumes + '</td><td>' + row.makina + '</td><td>' + row.kat + '</td><td>' +
  row.sol_sag + '</td><td style="color: rgba(25, 44, 44, 1); font-weight: bolder;">' +
  row.adet + '</td></tr>');

}

});

关于javascript - 用jQuery更新表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45660092/

10-13 01:45