简体   繁体   English

如何替换内容<td>在ajax数据中?

[英]How to replace the content of <td> in ajax data?

I tried to change the text IN to green dot in data[i].online and the text OUT to red dot in data[i].offline .我试图改变文本IN在绿点data[i].online和文本OUT ,以红点在data[i].offline

This is what I have right now.这就是我现在所拥有的。

在此处输入图片说明

This is the result that I want.这是我想要的结果。

在此处输入图片说明

I have already tried .text() , .html() .我已经尝试过.text().html() But these were not work for it.但这些都不适合它。

$.ajax({
        type: 'ajax',
        url: url,
        dataType: 'json',
        success: function(data){
        //console.log(data);
        var html = '';
        var i;
        for(i=0; i<data.length; i++){
        html += '<tr>' +
        '<td>'+data[i].name+'</td>'+
        '<td>'+data[i].description+'</td>'+
        '<td>'+data[i].comment+'</td>'+
       '</tr>';
        }
       $('#show').html(html);
      },
      error: function(){
            alert('Fail to load data');
       }
    });

Change you html row generation code as follows:更改您的 html 行生成代码如下:

for(i=0; i<data.length; i++){
    var row = $('<tr></tr>');
    $('<td></td>').appendTo($(row)).html(data[i].name);
    $('<td></td>').appendTo($(row)).html(getDot(data[i].online));
    $('<td></td>').appendTo($(row)).html(getDot(data[i].offline));
    $('<td></td>').appendTo($(row)).html(data[i].comment);
    $('#show').append($(row));
}

Function to generate the DOT:生成 DOT 的函数:

 function getDot(data){
    var div = '';
    if(data) {
      div = $('<div class="dot"></div>');
      if(data === 'IN') {
          $(div).addClass('green-dot');
      } else if(data === 'OUT') {
          $(div).addClass('red-dot');
      }
    }
    return div;
}

CSS : CSS :

div.dot {
    width : 20px;
    height : 20px;
    border-radius : 50%;
}

div.green-dot{
    background-color : green;
}

div.red-dot{
    background-color : red;
}

Check the demo in this fiddle .检查此小提琴中的演示。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM