2013-11-14 109 views
0

我遇到了這個問題,無法弄清楚該怎麼做。jQuery indexOf工作不正常

我有表:

<table class="jtable"> 
<tbody> 
    <tr> 
     <td>1</td> 
     <td>2</td> 
     <td>3</td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td>agea</td> 
     <td>haeh</td> 
    </tr> 
    <tr> 
     <td>3</td> 
     <td>2</td> 
     <td>1</td> 
    </tr> 
</tbody> 
</table> 

,我需要檢查第一列,這是我做的:

$(document).ready(function(){ 
    var arr = new Array(2, 1); 
    $('.jtable').find("tbody tr").each(function(){ 
     var firstCol = $(this).find("td:first").text(); 
     var inArray = arr.indexOf(firstCol); 
     alert(firstCol+" "+inArray); 
     if(inArray == -1){ 
      $(this).css("background", "red"); 
     } else { 
      $(this).css("background", "green"); 
     } 
    }); 
}); 

但我得到的是-1所有循環週期從indexOf,當我將indexOf(firstCol)更改爲數組中的其中一個數字時,它工作正常,但我需要動態變量var。任何解決方案,或者我做錯了什麼?

這裏是小提琴:http://jsfiddle.net/raa8B/

$.inArray想這太

回答

2

你正在尋找一個整數數組的字符串。您應該轉換爲int之前indexOf

var inArray = arr.indexOf(parseInt(firstCol)); 

JSFiddle

+0

謝謝,這個工作:)))) – user2945241

0

this fiddle

你有你的text()強制轉換爲整數,將它與你的數組中的整數比較:

var firstCol = parseInt($(this).find("td:first").text());