跨浏览器从数组中删除元素

时间:2013-11-29 07:20:24

标签: javascript jquery

我有一个数字数组,它是我网站中不同元素的data-cardNumber属性的值。

我正在尝试删除具有该属性的元素的data-cardNumber属性的值,该属性也具有类.lastBeenDragged。

我正在尝试这个,但我想我可能过分简化了我的代码。

当我在执行此代码之前和之后对数组进行console.log时,数组中没有任何变化。

如何正确地和浏览器一起删除一个元素,该元素的数据cardNumber的值与类.lestBeen拖动,来自数组swipedAwayCards?

以下是代码:

if(swipedAwayCards.indexOf($('.lastCardDragged').attr('data-cardNumber')) > -1) swipedAwayCards.splice(swipedAwayCards.indexOf($('.lastCardDragged').attr('data-cardNumber')), 1);

2 个答案:

答案 0 :(得分:1)

由于不支持Array.indexOf() crossbrowser,您可以使用$.inArray()

var index = $.inArray($('.lastCardDragged').attr('data-cardNumber'), swipedAwayCards);
if (index > -1) {
    swipedAwayCards.splice(index, 1);
}

答案 1 :(得分:0)

试试这个:

var v = $('.lastCardDragged').attr('data-cardNumber');
for (var i = 0, l = swipedAwayCards.length; i < l; i++) {
    if (swipedAwayCards[i] == v) {
        swipedAwayCards.splice(i, 1);
        break;
    }
}