【问题标题】:jQuery indexOf is not working properlyjQuery indexOf 无法正常工作
【发布时间】:2013-11-14 14:54:20
【问题描述】:

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

我有桌子:

<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");
        }
    });
});

但是对于从indexOf 开始的所有循环周期,我得到的只是-1,当我将indexOf(firstCol) 更改为数组中的一个数字时效果很好,但我需要动态变量。对此有什么解决方案,或者我做错了什么?

这里是小提琴:http://jsfiddle.net/raa8B/

我也用$.inArray 试过这个

【问题讨论】:

    标签: jquery arrays html-table indexof


    【解决方案1】:

    您正在寻找整数数组中的字符串。您应该在 indexOf 之前转换为 int

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

    JSFiddle

    【讨论】:

      【解决方案2】:

      this fiddle

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-13
        • 2011-07-24
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        • 2015-12-14
        • 2015-11-13
        相关资源
        最近更新 更多