根据类使用jQuery设置文本颜色

时间:2019-04-11 21:39:50

标签: jquery css

我在做一些看起来很简单的事情时遇到了麻烦。如果值小于零,我想简单地将文本颜色设置为红色。

因此,在第一个函数中,我得到了值,并且在“成功”时,如果余额<0,我想将颜色设置为红色。

function getTimeBankBalance(staffid){

  if(staffid == undefined){
    var staffid = $('#staffid').val();
  }

  $.ajax({
    url: 'get-timebankbalance.php',
    type: 'GET',
    data: {
      cache: false,
      staffid: staffid
    },
    success: function(balance) {
      $('.timebankbalance').html(roundToTwo(balance) + " Hours");
      if(balance < 0) $('.timebankbalance.').css('color','red');
    },
    error: function(){
      genericPrompt("Error","Unable to calculate staff time bank balance","errormessage-inline");
    },
  });
}

使用类选择器的原因是因为我有两个显示余额的地方。

无论如何,当页面加载完成时,都会调用上述函数。

$(function(){
  getTimeBankBalance();
});

但是它似乎不起作用。因此,我认为这可能是时间问题,这似乎是因为当我在调试器中暂停代码执行时,文本变为红色。没有调试器,它将保持黑色。

所以我然后尝试将代码移到一个单独的函数中

function setBalanceColour(balance){
  if(balance < 0){
    $('.timebankbalance.').css('color','red');
  }
}

并将该函数调用延迟几秒钟...

 setTimeout(setBalanceColour(balance),5000);

那也没有帮助。那么这是怎么回事?为什么它不改变颜色?

1 个答案:

答案 0 :(得分:2)

就像我们在评论中讨论的,.中还有一个$('.timebankbalance.')

所以这行:

if(balance < 0) $('.timebankbalance.').css('color','red');

看起来像:

if(balance < 0) $('.timebankbalance').css('color','red');