2016-09-01 4 views
0

Я запускаю этот код в свой jquery-скрипт, с помощью этого метода я могу обнаруживать только значения, которые выше или ниже, но не между ними.JQuery найти между двумя текстовыми значениями

Например: первое утверждение говорит ниже 1.

Как изменить его и сделать между 0-1.

Второе заявление между 1-29 ...

Третье утверждение 29-49 и так далее ...

код работает отлично, просто необходимо, что между ними, потому что оператор с более высоким значением перезаписать все другие ... Любые мысли?

$(document).ready(function(){ 
     $('.table td').each(function(){ 
      if($(this).text() <1) { 
       $(this).css('background-color','#fff'); 
      } 
      else if($(this).text() <29) { 
       $(this).css('background-color','#9A271C'); 
      } 
      else if($(this).text() <49) { 
       $(this).css('background-color','#BA650E'); 
      } 
     }); 
    }); 

ответ

1

вам нужно использовать && и в то время как вы используете .text() Я думаю, что вы будете нуждаться в parseInt();, а

$(document).ready(function(){ 
     $('.table td').each(function(){ 
      var ThisNumber = parseInt($(this).text()); 
      if(ThisNumber < 1) {       // less than 1 
       $(this).css('background-color','#fff'); 
      } 
      else if(ThisNumber >= 1 && ThisNumber <29) { //between 1 - 29 
       $(this).css('background-color','#9A271C'); 
      } 
      else if(ThisNumber >= 29 && ThisNumber <49) { // between 29-49 
       $(this).css('background-color','#BA650E'); 
      } 
     }); 
    }); 
+0

Точно то, что я хотел! –

+0

@ DanielDiaz приветствую .. Удачи :) –

2

Я думаю, что вы можете неправильно истолковать, что происходит. Поскольку у вас есть «else if», второе условие будет лучше всего проверено, если первое не получится - поэтому в вашем примере тест для < 29 произойдет, только если значение> = 1. Следовательно, я думаю, что код правильный, но там может быть чем-то более тонким в том, как он запускается. Без остальной части вашего кода трудно сказать, где все идет не так.

В моем оригинальный ответ я пропустил тонкость равно случай - значит, работать над ответом Мохамеда, но держать его простой код должен быть:

$(document).ready(function(){ 
    $('.table td').each(function(){ 
     var ThisNumber = parseInt($(this).text()); 
     if(ThisNumber <= 1) {       // less than 1 
      $(this).css('background-color','#fff'); 
     } 
     else if(ThisNumber <=29) { //between 1 - 29 
      $(this).css('background-color','#9A271C'); 
     } 
     else if(ThisNumber <=49) { // between 29-49 
      $(this).css('background-color','#BA650E'); 
     } 
    }); 
}); 

т.е. просто изменить «<» до '< = '

2

Как изменить его и сделать между 0-1 не было бы < = 1

Второе заявление между 1-29 должно быть < = 29, так как 1 и ниже запускают сначала и закрывают if.

Третье заявление 29-49 и т. Д. Было бы < = 49, поскольку предыдущие, если бы срабатывали триггеры, если было меньше 29 ... Я не эксперт, но я знаю немного.

1

Говоря «между 0-1» и «между 1-29» вы забываете о 1 сам! Если вы хотите включить номер (значение от 0 до включительно 1), положить <= вместо <, такие как

if($(this).text() <=1) { 

В противном случае, если вы хотите конкретно не считать цифры ниже 0, когда вы говорите, «между 0-1», вы можете указать, что так

if($(this).text() >=0 && $(this).text() <1) { 
Смежные вопросы