Jquery .splice($.inArray())应仅删除匹配项
我有五个链接。每个链接都有一个id。我将每个id保存到一个数组中 单击链接时,我试图从数组中删除匹配的单击链接id 我正试图通过以下方式实现这一点:Jquery .splice($.inArray())应仅删除匹配项,jquery,splice,Jquery,Splice,我有五个链接。每个链接都有一个id。我将每个id保存到一个数组中 单击链接时,我试图从数组中删除匹配的单击链接id 我正试图通过以下方式实现这一点: shuffledBlockIds.splice( $.inArray(removeItem, shuffledBlockIds), 1 ); 该项在第一次单击时删除得很好,但是如果我再次单击,它只会删除另一项,尽管单击的id不再存在 如果数组中存在单击的id,如何仅删除项目 看了indexOf,但这应该在IE8中不起作用 IE9+解决方案也会受到
shuffledBlockIds.splice( $.inArray(removeItem, shuffledBlockIds), 1 );
该项在第一次单击时删除得很好,但是如果我再次单击,它只会删除另一项,尽管单击的id不再存在
如果数组中存在单击的id,如何仅删除项目
看了indexOf,但这应该在IE8中不起作用
IE9+解决方案也会受到欢迎——只是想知道是否有一些智能Jquery方法也能处理IE8
小提琴:
如果ShuffledBlockID中不存在removeItem,将返回-1
矿山的重点是:
开始
开始更改数组的索引。如果大于数组的长度,则实际起始索引将设置为长度
数组的一部分。如果是负数,那么许多元素都将从末尾开始
因此,splice最终将从阵列中删除最后一个元素
要解决此问题,请使用显式测试:
var index = $.inArray(removeItem, shuffledBlockIds);
if (index >= 0) {
shuffledBlockIds.splice(index, 1);
}
如果removeItem在ShuffledBlockID中不存在,将返回-1
矿山的重点是:
开始
开始更改数组的索引。如果大于数组的长度,则实际起始索引将设置为长度
数组的一部分。如果是负数,那么许多元素都将从末尾开始
因此,splice最终将从阵列中删除最后一个元素
要解决此问题,请使用显式测试:
var index = $.inArray(removeItem, shuffledBlockIds);
if (index >= 0) {
shuffledBlockIds.splice(index, 1);
}
说真的,还在考虑IE8?继续。我有,但我想知道是否真的有一个Jquery解决方案可以很容易地考虑IE8——编辑了我的描述。说真的,仍然在考虑IE8吗?继续,我有,但我想知道是否有一个Jquery解决方案可以很容易地将IE8考虑进去——编辑了我的描述。