javascript - 更改与值相关的颜色

标签 javascript jquery

我有从后端填充的表值

这是执行此操作的 js 函数。

function AllProposals() {
  let getProposalsUrl = '/proposals/index';
  $.ajax({
      url: getProposalsUrl,
      contentType: 'application/json; charset=utf-8',
      type: 'GET',
      dataType: 'json',
      processData: false,
      success: function (data) {
          $("#proposals").empty();
          var list = data;
          for (var i = 0; i <= list.length - 1; i++) {
              var tableData = '<tr>' +
                  '<td class="proposalId">' +
                  list[i].Id +
                  '</td>' +
                  '<td > ' +
                  list[i].Project +
                  '</td>' +
                  '<td > ' +
                  moment(list[i].DateFrom).format('DD/MM/YYYY') + "--" + moment(list[i].DateTo).format('DD/MM/YYYY') +
                  '</td>' +
                  '<td> ' +
                  list[i].WorkTime + "--" +list[i].WorkTimeTo +
                  '</td>' +
                  '<td > ' +
                  list[i].Quantity+
                  '</td>' +
                  '<td> ' +
                  list[i].Service +
                  '</td>' +
                  '<td> ' +
                  list[i].Price +
                  '</td>' +
                  '<td> ' +
                  list[i].Status +
                  '</td>' +

                  '</tr>';
              $('#proposals').append(tableData);
          }
      }
  })
}

效果很好。

但是需要在航类检查这个值

'<td> '+list[i].Status+'</td>' +

如果是“拒绝”,请将文本颜色更改为红色。

我怎样才能正确地做到这一点?

感谢您的帮助。

最佳答案

假设如果您需要重用ajax调用的返回数据并且一般来说它不好看,那么这段代码将需要一些重构,我会这样做:

          '<td'+ (list[i].Status == 'Rejected' ? ' style="color:red;"' : '') +'> ' +
          list[i].Status +
          '</td>' +

编辑
如果将来您需要根据 list[i].Status 的内容分配不同的颜色,我建议创建一个内容到颜色的查找表:

let contentToColor = {
    "Rejected": "red",
    "Success": "green",
    "Warning": "yellow"
};

然后:

      '<td'+ (contentToColor[list[i].Status] !== 'undefined' ? ' style="color: '+ contentToColor[list[i].Status] +';"' : '') +'> ' +
      list[i].Status +
      '</td>' +


检查变量是否存在的方式可能是错误的,我不记得在JS中是如何完成的,但是你明白了。

无论如何,我建议通过分离表示代码和域代码来重构代码。我上面写的丑陋代码将拯救你自己。我必须读 10 遍才能检查报价是否正确。

关于javascript - 更改与值相关的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50161151/

相关文章:

javascript - dijit.树 : How to update tree after pasteItem call?

javascript - 如果 ID 缺失,则使用 jquery 填充另一个隐藏字段中的行

javascript - JSON.stringify 返回为空?

javascript - Bootstrap - 模态 - 访问父对象的值

jquery - Grails 4:Grails Spring Websocket 2.5.0.M1升级破坏了Websockets

javascript - 我正在尝试在页面加载时自动单击一个信号按钮。但不起作用

jQuery 的可拖动插件

javascript - 使用 jQuery 将数字添加到 div 的末尾

javascript - 停止输入键单击按钮

jquery - 键盘快捷键 JQUERY - Command+S、Control+S