кросс-браузер удалить элемент из массива

0

У меня есть массив чисел, которые являются значениями атрибута data-cardNumber другого элемента на моем сайте.

Я пытаюсь удалить значение атрибута data-cardNumber элемента, у которого есть этот атрибут, который также имеет класс.lastBeenDragged.

Я пытаюсь это сделать, но я думаю, что я, возможно, слишком упростил свой код.

Когда я console.log массива до и после выполнения этого кода, в массиве нет изменений.

Как я могу правильно и перекрестно броузеру удалить элемент, значение data-cardNumber элемента с классом.lastBeen Перетащил из массива swipedAwayCards?

Вот код:

if(swipedAwayCards.indexOf($('.lastCardDragged').attr('data-cardNumber')) > -1) swipedAwayCards.splice(swipedAwayCards.indexOf($('.lastCardDragged').attr('data-cardNumber')), 1);
Теги:

2 ответа

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;
    }
}
  • 0
    Ах хорошо. Да, это имеет смысл. К сожалению, когда я console.log массив до и после этого кода, он по-прежнему имеет значение. Могу ли я показать вам живую версию сайта с кодом?
  • 0
    @gomangomango Это не обязательно. Зарегистрируйте значение атрибута данных и дайте мне знать.
Показать ещё 2 комментария
1

Поскольку Array.indexOf() не поддерживается crossbrowser, вы можете использовать $.inArray()

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню