这是html:
<button id="btn1">CLICK 1</button>
<button id="btn2">CLICK 2</button>
<div id="show"></div>
这是javascript:
product_id = new Array();
$("#btn").on('click', function () {
$("#show").append("<div><button type='button' id='btn1x' class='close pull-right' aria-hidden='true'>×</button>" + "<pre>button 1</pre></div>");
product_id.push("btn1");
alert(product_id);
});
$(document).on('click', 'button#btn1x', function () {
$(this).parent().remove();
alert(product_id);
//when I click this button, i want to remove the "btn1" that I pushed a while ago from my array
});
$("#btn2").on('click', function () {
$("#show").append("<div><button type='button' id='btn2x' class='close pull-right' aria-hidden='true'>×</button>" + "<pre>button 2</pre></div>");
product_id.push("btn2");
});
$(document).on('click', 'button#btn2x', function () {
$(this).parent().remove();
//when I click this button, i want to remove the "btn2" that I pushed a while ago from my array
});
我想单击按钮,最终会在我创建的数组中插入某个值。但是,我还创建了一个关闭按钮,当我单击它时,我想从数组中删除插入的值。
答案 0 :(得分:0)
使用.pop(),jQuery中提供了所有常规的javascript函数 http://learn.jquery.com/javascript-101/arrays/
给定一个数组:
var array = [1,2,3,5];
array.push(9); // [1,2,3,5,9]
array.pop(); // [1,2,3,5]
现在,如果你想删除2 ......那就不同了。
答案 1 :(得分:0)
我猜你正在寻找这样的功能:
removeProduct = function(item) {
var n = product_id.indexOf(item);
if(n >= 0)
product_id.splice(n, 1);
}
答案 2 :(得分:0)
当我想跟踪异步上传时,我有一个类似的问题,当元素上传完成时,我会删除哪个进度条。这可能不是您正在寻找的,但它可能会向您发送正确的方向。你可以尝试一种类似下面的字典方法:
var arr = []
添加到数组看起来像
arr[uid] = value;
console.log(arr);
然后,如果你想从数组中删除
delete arr[uid];
如果您想要迭代,可以这样做:
for (var key in arr) {
value = arr[key];
console.log(value);
}
答案 3 :(得分:0)
<强> HTML:强>
<button id="btn1" class="adder">CLICK 1</button>
<button id="btn2" class="adder">CLICK 2</button>
<div id="show"></div>
<强>的javascript:强>
$('button.adder').on('click',
function () {
var aid = $(this).attr('id');
$('#show').append('<div><button class="removable" style="height: 30px;">' + aid + '</button></div>');
});
$('div#show').on('click', 'div button.removable',
function () {
//console.log(this);
$(this).remove();
console.log($('div#show').children());
});
如果你想要这种行为,你可以做这样的事情。如果您需要其他地方的信息(并且不关心性能),您可以使用 $('div#show')。children()来获取当前列表。
在http://jsfiddle.net/eWtNN/8/上进行了测试,但确实有效。
或者,如果您担心数组列表行为,可以使用 array.pop(n)删除特定索引,例如数组。 pop(0)将从数组中删除第一个项。或 array.pop(2)删除第三个项。同样,这并不关注绩效。