使用indexOf

时间:2015-05-22 10:17:01

标签: javascript jquery indexof

我遇到了' indexOf'的问题。当我在参数中传递一个数值时,它可以工作,但不能用变量:

$.ajax({
    url: 'bdd.php',
    type: 'POST',
    data: {'jsonNomCommune': jsonNomCommune, 'client': client},
    success: function(data) {
        data = JSON.parse(data);
        listClients= data.clients;
        listProspects = data.prospects;

        $('#tableCSV tbody tr ').each(function(){
            var id = $(this).attr('id');
            id=id.substring(4);

            if (listClients.indexOf(id) > -1){
                $(this).css("background-color","red");

            }

            if (listProspects.indexOf(id) > -1){
                $(this).css("background-color","blue");
            }


        });
    }
});

listProspects和listClients是数值的数组。例如,27位于listClients中,因此当id = 27时," listClients.indexOf(id)> -1"应该有用,但它没有。当我写道:"(listClients.indexOf(27)> -1)"它有效。

问题在哪里?

3 个答案:

答案 0 :(得分:1)

27"27"不同。

尝试将id解析为整数:

listClients.indexOf(+id) //note, its parsing

OR:

listClients.indexOf(parseInt(id, 10))

答案 1 :(得分:0)

您应该将$(this).attr('id')的值转换为数字 所以它应该是var id = Number($(this).attr('id'));

答案 2 :(得分:0)

使用parseInt()方法将id转换为整数