这是我尝试从动态删除数组中的值的尝试

$('.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。

最佳答案

这里的问题是.dataplayer数据字符串值转换为数字:


  会尝试将字符串转换为JavaScript值(包括布尔值,数字,对象,数组和null)。仅在不更改值表示形式的情况下,将值转换为数字。字符串值“ 100”将转换为数字100。


在您的示例中,您正在做

$.inArray(13077, ["compare","13076","13075","13077","12755"]);


而不是

$.inArray("13077", ["compare","13076","13075","13077","12755"]);


您必须将数据值转换回字符串(例如removePlayer += ""),或者用数字值而不是字符串填充数组。

09-25 18:20