2013-11-14 2 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

. 당신은 indexOf

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

JSFiddle

+0

감사 전에 int로 변환해야합니다,이))) : 일 – user2945241

0

this fiddle를 참조하십시오 여기에

는 바이올린입니다.

당신은 당신의 배열의 정수와 비교하는 정수에 text() 캐스팅해야합니다 : 당신은 정수 배열의 문자열을 찾고 있습니다

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