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 です。配列内の数値の 1 つindexOfに変更indexOf(firstCol)すると、うまく機能しますが、そこに動的変数が必要です。これに対する解決策、または私が間違っていることはありますか?

これがフィドルです:http://jsfiddle.net/raa8B/

これ$.inArrayも一緒にやってみた

4

2 に答える 2

2

整数配列内の文字列を探しています。前に int に変換する必要がありますindexOf

 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 に答える