这是我尝试动态删除数组中的值
$('.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 ,我希望它从数组中删除该值,然后重定向到附加到{{1变量
答案 0 :(得分:2)
此处的问题是.data
将player
数据字符串值转换为数字:
每次尝试都将字符串转换为JavaScript值(包括布尔值,数字,对象,数组和null)。如果这样做不会更改值的表示,则只会将值转换为数字... 字符串值" 100"被转换为数字100。
在您的示例中,您正在执行
$.inArray(13077, ["compare","13076","13075","13077","12755"]);
而不是
$.inArray("13077", ["compare","13076","13075","13077","12755"]);
您必须将数据值转换回字符串(例如removePlayer += ""
)或使用数字值而不是字符串填充数组。