0

我遇到了这个问题,不知道该怎么办。

我有表:

<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我也试过这个

4

2 回答 2

2

您正在寻找整数数组中的字符串。您应该先转换为 intindexOf

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

JSFiddle

于 2013-11-14T14:58:03.763 回答
0

看到这个小提琴

您必须将您text()的整数转换为整数才能将其与数组中的整数进行比较:

var firstCol = parseInt($(this).find("td:first").text());
于 2013-11-14T14:57:56.183 回答