如何根据条件轨道将类添加到表行?

时间:2016-12-29 15:19:54

标签: javascript ruby-on-rails ruby

我有一个包含条目的表格。每个条目都有日期时间,文本,卡路里。如果当天的总卡路里低于预期值,我需要将所有行设为绿色,否则将其设为红色。在我的索引操作中,我有@total(这是要与之比较的值),最后我有两个数组,其中包含良好的(绿色)日期和错误的日期。

def index
@entries = Entry.all
@total = 50
@total2 = Entry.all
@a = {}
Entry.all.each do |entry|
  if @a.key?(entry.time.strftime("%Y-%m-%d %H:%M:%S")[0..10])
    @a[entry.time.strftime("%Y-%m-%d %H:%M:%S")[0..10]] += (entry.calory)
  else  
    @a[entry.time.strftime("%Y-%m-%d %H:%M:%S")[0..10]] = 0
    @a[entry.time.strftime("%Y-%m-%d %H:%M:%S")[0..10]] += entry.calory
  end
end
@good = []
@bad = []
@a.each do |c|
  if c[1] < @total
    @good.append(c[0])
  else
    @bad.append(c[0])
  end
end

然后在我的index.html.erb中,我遍历行并尝试更改它的颜色,如果值是好的或坏的数组。但它把一切都变成了绿色。

  <script type="text/javascript">
  var a = '<%=@a%>';
  var final = '<%=@final%>';
  var good = '<%=@good%>';
  var bad = '<%=@bad%>';
  console.log(good);
  $('#entries tr').each(function() {
    var date = $(this).find("td:first-child").text();
    if (good.substring(date) !== -1) {
      $(this).find("td:first-child").addClass('good');
    } else {
      $(this).find("td:first-child").addClass('bad');
    }
});

</script>

这是我的表

Time    Text    Calory  Show    Edit    Destroy 
2016-12-24 10:00:00 first   23  Show    Edit    Destroy
2016-12-24 11:58:00 second  45  Show    Edit    Destroy
2016-12-24 12:59:00 third   56  Show    Edit    Destroy
2016-12-28 12:29:00 sds 34  Show    Edit    Destroy
2016-12-24 10:00:00 dewq    34  Show    Edit    Destroy

这是console.log(不错):[“2016-12-28”] 这是console.log(坏):[“2016-12-24”]

这是每个日期的console.log(日期):

2016-12-24 10:00:00
2016-12-24 11:58:00
2016-12-24 12:59:00
2016-12-28 12:29:00
2016-12-24 10:00:00

1 个答案:

答案 0 :(得分:1)

您只需要使用indexOf;根据您的样本数据,这应该有效:

$('#entries tr').each(function() {
   var date = $(this).find("td:first-child").text();
   if(date.indexOf(bad[0].toString()) > -1){
     $(this).find("td:first-child").addClass('bad');
   }
   if(date.indexOf(good[0].toString()) > -1){
     $(this).find("td:first-child").addClass('good');
   }
});

工作小提琴:https://jsfiddle.net/e0sn1d0k/3/