我有一个HTML元素,我用div和数据填充了PHP脚本返回的JSON。数据在不断更新,因此我正在使用Eventsouce(sse)。

<div class="row state-overview" id="statusCount"> </div>

let fsource;
function getStatus() {
    if (typeof(EventSource) !== "undefined") {
        try {
            fsource.removeEventListener("status", stream, false);
        } catch (ex) {
        }
        fsource = new EventSource("-PHP FILE-");
        fsource.addEventListener("status", stream, false);
    } else {
        console.log("Oh no");
    }
}
function stream(e) {
    let data = JSON.parse(e.data);
    let html = '';
    $.each(data, function (key, value) {
        html += '<div class="col-lg-2 panel ' + key + ' ">';
        html += '<p>' + key + '</p>';
        html += '<label>' + value + '</label>';
        html += '</div>';
    });
     $('#statusCount').html(html);
}
getStatus();


这完美地工作,但是,我试图隐藏/不显示值= 0的元素。

JSON的示例如下所示:

event: status
data: {"Online": 2, "Stopped": 3, "Alarm": 0, "Offline": 0}


不幸的是,我无法更改PHP来操纵返回的数据,
因此,任何JavaScript或Jquery解决方案都将非常棒-干杯!

最佳答案

一个简单的条件呢:

$.each(data, function (key, value) {

  // if value IS more than zero, add some html
  if(value>0){
    html += '<div class="col-lg-2 panel ' + key + ' ">';
    html += '<p>' + key + '</p>';
    html += '<label>' + value + '</label>';
    html += '</div>';
  }
});

关于javascript - 当数据大于0(零)时,Ajax Jquery/JavaScript创建HTML元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55251810/

10-12 17:46
查看更多