Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中从数组中删除单击的项_Javascript_Jquery_Arrays_Indexing_Splice - Fatal编程技术网

在javascript中从数组中删除单击的项

在javascript中从数组中删除单击的项,javascript,jquery,arrays,indexing,splice,Javascript,Jquery,Arrays,Indexing,Splice,我有一个单击功能,可以列出所选项目。此外,我将所选项目推送到一个数组中。这部分没有问题,这里是函数 $('#addToCartButton2').click(function(){ var toAdd=$("#chooseItem2 option:selected").text(); var itemNbr2=$("#itemNbr2").val(); if(toAdd !== defaultSelectFormText && itemNbr2 &

我有一个单击功能,可以列出所选项目。此外,我将所选项目推送到一个数组中。这部分没有问题,这里是函数

$('#addToCartButton2').click(function(){  

    var toAdd=$("#chooseItem2 option:selected").text();
    var itemNbr2=$("#itemNbr2").val();

    if(toAdd !== defaultSelectFormText && itemNbr2 >=1){
        $('#defaultText').remove();
        $('.col-md-5').append('<p id="items">' + itemNbr2 + ' Adet ' + toAdd + '<span class="extra">Sipariş listesinden çıkarmak için tıklayın!</span>' + '</p>');
        ordersArray.push(itemNbr2 + ' Adet ' + toAdd);
        alert(ordersArray.toString());
    };
});

如何获取列表中已单击项目的索引?

首先,您可以使项目的id唯一,或者像我在本解决方案中所做的那样使用类而不是id

$('#addToCartButton2').click(function(){  

    var toAdd=$("#chooseItem2 option:selected").text();
    var itemNbr2=$("#itemNbr2").val();

    if(toAdd !== defaultSelectFormText && itemNbr2 >=1){
        $('#defaultText').remove();
        $('.col-md-5').append('<p class="items"><span>' + itemNbr2 + ' Adet ' + toAdd + '</span><span class="extra">Sipariş listesinden çıkarmak için tıklayın!</span>' + '</p>');
        ordersArray.push(itemNbr2 + ' Adet ' + toAdd);
        alert(ordersArray.toString());
    };
});

$(document).on('click', '.items', function() {

    var index = ordersArray.indexOf($('span:first', this).text());

    alert(index);
    if (index > -1) {
        ordersArray.splice(index, 1);
    }

    $(this).remove();
}); 
$('addToCartButton2')。单击(函数(){
var toAdd=$(“#选择项2选项:选中”).text();
var itemNbr2=$(“#itemNbr2”).val();
如果(toAdd!==defaultSelectFormText&&ItemNb2>=1){
$('#defaultText')。删除();
$('.col-md-5')。追加('

'+itemNbr2+'Adet'+toAdd+'Siparişlistensindenıkarmak için tıklayın!'+'

); ordersArray.push(itemnb2+'Adet'+toAdd); 警报(ordersArray.toString()); }; }); $(文档).on('单击','.items',函数(){ var index=ordersArray.indexOf($('span:first',this.text()); 警报(索引); 如果(索引>-1){ ordersArray.拼接(索引,1); } $(this.remove(); });
要从该列表中删除单击的项目,请进行以下更改:

$(document).on('click', '#items', function() {

    var index = ordersArray.indexOf($(this).text());

    alert(index);
    if (index > -1) {
        ordersArray.splice(index, 1);
    }
    $(this).remove();

});

看起来你删除项目的方法有点复杂。 为什么不为要追加的每个项目使用uniqe ID并删除呢
ID为的项目?

ID应该是唯一的。使用类绑定元素集合的事件。更好的办法是提供小提琴
$(document).on('click', '#items', function() {

    var index = ordersArray.indexOf($(this).text());

    alert(index);
    if (index > -1) {
        ordersArray.splice(index, 1);
    }
    $(this).remove();

});