使用.remove()删除数组中的所有元素

时间:2013-10-11 16:21:54

标签: javascript jquery arrays html5

所以我有一系列数字,让我们说["1", "3", "2"]

它们对应于我给某些元素的data-cardNumber属性的值。

我希望删除数组中包含data-cardNumber值的所有元素。

我尝试通过迭代数组并为调用.remove()的数组中的每个项构建一个选择器来做到这一点,但这不起作用。

我认为选择器过于复杂,因为它跨越多个字符串。

如何使用data-cardNumber属性迭代数组和.remove()所有元素,其值在数组中?

以下是我尝试过的代码:

for(var i=0; i<swipedAwayCards.length; i++){
    $('[data-cardNumber="'+swipedAwayCards[i]'"]').remove();
    // i'm trying to construct a selector like [data-cardNumber="1"]
}

3 个答案:

答案 0 :(得分:1)

看起来这只是一个语法错误,它应该出现在控制台中:

$('[data-cardNumber="'+swipedAwayCards[i]+'"]')

(你在连接中错过了最后的+

答案 1 :(得分:0)

您可以尝试以下方法:

$('[data-cardNumber="'+swipedAwayCards[i] + '"]').each(function() {
  $(this).remove();
});

这应该工作而不是执行for循环,因为jquery已经能够遍历选择器的所有匹配。

答案 2 :(得分:0)

您可能需要执行以下任一操作

var a = [1,2,3,4];
for(var i = 0 ; i< a.length; i++){
delete(a[i]); // This resets the value to undefined
}

产生以下结果

[未定义,未定义,未定义,未定义]

var a = [1,2,3,4];
var b;
for(var i = 0 ; i< a.length; i++){
  b = a.pop();// This actually removes the Element from array and puts it in the variable b
}

结果:** b = 1最后要弹出的最后一个元素是1,b = [] **