2012-03-14 96 views
-5

我想添加一個類到表中的一些單元格,如果它們的數值大於或等於某個值。如果語句總是評估爲真的條件

這是我的代碼。 re是添加類的閾值。

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

然而,if語句的條件總是似乎以評估和true總是被添加的類!我究竟做錯了什麼?

+10

''re''中的're' mean是什麼意思 – JaredPar 2012-03-14 07:55:26

+3

如果語句被執行,那*表示條件是'true' *。不是'if'聲明是問題,你的情況是。 – deceze 2012-03-14 07:57:08

+0

對不起,它是一個前面定義的變量。我已經檢查了值或this.html,並且在if語句時它們是正確的,但是無論條件如何,它都被輸入。 – user1258430 2012-03-14 07:57:47

回答

1

聲明:

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

很可能不這樣做你想要做的事。

如果這些都應該是一個數字比較的數字,那麼你需要做一個數字比較之前將字符串解析成一個數字(和重新必須爲數字太):

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

一個例子re是什麼,什麼$(this).html()將允許我們給出更具體的答案。

+0

謝謝!我沒有意識到this.html正在返回一個字符串感謝 – user1258430 2012-03-14 08:00:17

+0

你能告訴我什麼是第二個參數10在這裏面parseInt? – 2012-03-14 08:00:44

+0

如果返回的HTML是一個數值,它不應該是一個問題(雖然我也認爲這是一個好主意)。請參閱:http://jsfiddle.net/qKUSh/ – m90 2012-03-14 08:01:07

0

猜測:

  • 您的問題是,當你再次運行此,類不會被刪除
  • 你知道什麼re是,並有可能與它沒有任何問題,這就是爲什麼你沒有表現出來

如果這是正確的,.toggleClass()應該可以幫助您:

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

使用此代碼,它會工作

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

這裏re是一個字符串,你不能在一個字符串中使用> =。