这是我尝试从动态删除数组中的值的尝试
$('.btn-remove').click(function() {
var players = ["compare","13076","13075","13077","12755"];
var removePlayer = $(this).data('player');
var idx = $.inArray(removePlayer, players);
if (idx != -1) {
players.splice(idx, 1);
}
window.location = "/" + players.join('/');
})
例如,
$(this).data('player')
可能等于13077,我希望它从数组中删除该值,然后重定向到附加到window.location
变量的url。 最佳答案
这里的问题是.data
将player
数据字符串值转换为数字:
会尝试将字符串转换为JavaScript值(包括布尔值,数字,对象,数组和null)。仅在不更改值表示形式的情况下,将值转换为数字。字符串值“ 100”将转换为数字100。
在您的示例中,您正在做
$.inArray(13077, ["compare","13076","13075","13077","12755"]);
而不是
$.inArray("13077", ["compare","13076","13075","13077","12755"]);
您必须将数据值转换回字符串(例如
removePlayer += ""
),或者用数字值而不是字符串填充数组。