我遇到了' 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)"它有效。
问题在哪里?
答案 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转换为整数