2012-03-14 4 views
-5

숫자 값이 특정 값보다 크거나 같으면 클래스의 일부 셀에 클래스를 추가하려고합니다.if 문이 항상 참으로 평가되는 조건

이것은 내가 가지고있는 코드입니다. re은 클래스 추가를위한 임계 값입니다.

$("#battersTable td.runs").each(function() { 
    if($(this).html() >= re) { 
     $(this).addClass("elite"); 
    } 
}); 

그러나, if 문장의 조건은 항상 true로 평가 될 나타나고 클래스는 항상 추가되고! 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+10

'> = re'에서're '은 무엇인가 – JaredPar

+3

명령문이 실행되면, *는 조건이'true' *임을 의미합니다. 'if' 문이 문제가 아니라, 당신의 상태가 문제입니다. – deceze

+0

죄송합니다. 이전에 정의 된 변수입니다. 필자는 값 또는 this.html을 확인하고 if 문이 올 바르고 올바른지 여부와 관계없이 입력됩니다. – user1258430

답변

1

문 :

if ($(this).html() >= re) 

가능성이 당신이하고 싶은 일을하지 않습니다.

if (parseInt($(this).html(), 10) >= re) 

예 : 다음은 숫자 비교 수 있어야하는 경우

는, 당신은 숫자 비교를 수행하기 전에 문자열을 숫자로 구문 분석 (다시 숫자가 너무 있어야합니다)가 필요합니다 무엇 모두 re 무엇이며 무엇 $(this).html() 더 구체적으로 답변을 제공 할 수 있습니다.

+0

감사합니다! 나는 this.html이 문자열 감사를 반환했다는 것을 깨닫지 못했다 – user1258430

+0

parseInt 안에 두 번째 인수 10이 무엇인지 말해 줄 수 있습니까? –

+0

반환 된 HTML이 숫자 값인 경우 문제가되지 않아야합니다 (너무 좋은 아이디어라고 생각할지라도). 참조 : http://jsfiddle.net/qKUSh/ – m90

0

추측으로 :, 그건 왜이다

  • 문제가 다시이 프로그램을 실행할 때, 클래스는 re가 무엇인지
  • 를 제거되지 않습니다 그것은 아무 문제가 없을 수있다 이 잘 경우 그것을

을 표시하지 않습니다,.toggleClass() 당신을 도움이 될 것입니다

그것은 것
$("#battersTable td.runs").each(function() 
{ 
    $(this).toggleClass("elite", $(this).html() >= re); 
}); 
0

사용이 코드는 re 문자열이며 문자열> = 사용할 수 없습니다 여기

$("#battersTable td.runs").each(function() 
{ 
    var val = $(this).html(); 
    if(val == 're') 
    { 
     $(this).addClass("elite"); 
    } 
}); 

작동합니다.