我想从数组中删除特定值。我编写的代码如下:
$(".remove", document.getElementById("TXT")).live("click", function () {
$(this).parent().remove();
var removeitem = $(this).parent().attr('id');
pushvar.splice($.inArray(removeitem, pushvar), 1);
});
在上面的代码pushvar
中是一个数组。假设它包含3个元素。当我们点击其中一个删除按钮时,该函数将重复三次。例如,pushvar
包含[5,6,7]
个元素。如果我点击6的删除按钮,那么该功能将重复三次。但是
pushvar.splice($.inArray(removeitem, pushvar), 1);
将删除所有三个元素。但是当我点击删除类时,我只想从数组中删除6。我怎么能这样做。
答案 0 :(得分:1)
您可以这样做:
var myArray = [10, 20, 30, 40, 50];
var removeThis = 30;
myArray = jQuery.grep(myArray, function(data){
return data != removeThis;
});
答案 1 :(得分:1)
live()
已弃用
jQueryversion弃用:1.7,删除:1.9
所以请使用on
$(".remove,#TXT").on("click", function () {
var removeitem = $(this).parent().attr('id'); //get parent id
$(this).parent().remove(); //remove later
pushvar.splice($.inArray(removeitem, pushvar), 1);
});
如果您的选择器是动态添加的,请使用on
委托
$(document).on("click", ".remove,#TXT", function () {
答案 2 :(得分:1)
我会做这样的事情:
$("#TXT").on("click", ".remove", function () {
var removeitem = $(this).parent().remove().attr('id');
pushvar.splice($.inArray(removeitem, pushvar)-1, 1);
});
因为这似乎对我有用 - > FIDDLE,但没有任何HTML,有很多猜测?
答案 3 :(得分:1)
试试这个:
$(".remove", document.getElementById("TXT")).live("click", function () {
$(this).parent().remove();
var removeitem = $(this).parent().attr('id');
if ($.inArray(removeitem, pushvar) > 0) pushvar.splice($.inArray(removeitem, pushvar), 1);
});
答案 4 :(得分:1)
试试这个
pushvar = [5,6,7];
$('.remove').on("click", function () {
var removeitem = $(this).attr('id');
pushvar.splice($.inArray(parseInt(removeitem), pushvar), 1);
document.write(pushvar);
return false;
});