2016-09-01 5 views
0

Ich führe diesen Code in mein jquery Skript, mit dieser Methode kann ich nur Werte erkennen, die höher oder niedriger aber nicht zwischen ihnen sind.JQuery finde zwischen zwei Textwerten

Zum Beispiel: die erste Anweisung sagt niedriger als 1.

Wie es zu ändern und zwischen 0-1.

Zweite Aussage zwischen 29.01 ...

dritte Aussage 29-49 und so weiter ...

Der Code funktioniert gut, muss nur, dass zwischen, weil die Aussage mit einem höheren Wert überschreiben alle die anderen ... Irgendwelche Gedanken?

$(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'); 
      } 
     }); 
    }); 

Antwort

1

müssen Sie && verwenden und während Sie .text() verwenden Ich glaube, Sie parseInt(); benötigen auch

$(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

Genau was ich wollte! –

+0

@DanielDiaz du bist willkommen .. Viel Glück :) –

2

Ich denke, Sie könnten falsch interpretieren, was vor sich geht. Da Sie ein "else if" haben, wird die zweite Bedingung nur dann am besten getestet, wenn die erste fehlschlägt - in Ihrem Beispiel wird der Test für < 29 nur dann ausgeführt, wenn der Wert> = 1 ist könnte etwas subtiler sein, wie es ausgeführt wird. Ohne den Rest Ihres Codes ist es schwer zu sagen, wo etwas schief läuft.

In meiner ursprünglichen Antwort vermisste ich die Subtilität der Fall ist gleich - damit auf Mohamed Antwort arbeiten, aber es einfach den Code halten sollte:

$(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'); 
     } 
    }); 
}); 

also nur die ‚<‘ ändern zu '< = '

2

Wie es zu ändern und zwischen 0-1 würde das nicht < = 1

Zweite Aussage zwischen 1-29 sein sollte < = 29 da 1 und unten zuerst ausgelöst werden und das if herunterfahren würde.

Dritte Aussage 29-49 und so weiter ... Wäre < = 49 seit dem vorherigen wenn Trigger würde feuern, wenn es weniger als 29 war ... Ich bin kein Experte, aber ich weiß ein wenig.

1

mit den Worten „zwischen 0-1“ und „zwischen 1-29“ Sie vergessen über 1 selbst! Wenn Sie eine Zahl (dh von 0 bis einschließlich 1) aufnehmen möchten, setzen <= statt <, wie

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

Andernfalls, wenn Sie möchten, speziell nicht Zahlen unter 0 zählen, wenn Sie sagen, "zwischen 0-1", können Sie das so spezifizieren

if($(this).text() >=0 && $(this).text() <1) { 
Verwandte Themen