【问题标题】:how to remove a specific item from an array based on what item you click using javascript如何根据您使用javascript单击的项目从数组中删除特定项目
【发布时间】:2014-08-07 12:38:22
【问题描述】:

我希望能够单击列表项(由数组的项组成)并将其从数组中永久删除。我可以在使用 remove() 单击时将其删除,但是当我将另一个项目添加到数组时,该项目会显示回来,以及我刚刚添加的新项目。

JSFIDDLE 账号:http://jsfiddle.net/trav5567/3s64o1ta/1/

Javascript

      function testArray(){
       var Fruit = ['apple', 'bannanna', 'rasberry', 'watermelon', 'grape', 'orange'];
       function initArray(){
        loopArray();
       }initArray();
       function myFruit(){
         $('#addFruit').on('click', function(e) {
          e.preventDefault();
          var flag = true;
          var val = $('#fruitAdd').val();
          for(var i = 0 ; i < Fruit.length ; i ++){
            if(Fruit[i] == val){
              flag = false;
              console.log('already entered this item');
             }        
           }
           if(flag){
            Fruit.push(val);
            loopArray();
           }
         });
         }myFruit();
         function loopArray(){
           var fruitList = $('ul.fruit');
           var arrayContainer = $('.arrayContainer');
           fruitList.empty();
           for(var i = 0; i< Fruit.length; i++){
             fruitList.append('<li>'+Fruit[i]+'</li>');
           }
          }
         function removeItem(){
            var itemClicked = $('ul.fruit li');
            itemClicked.on('click', function(){
               $(this).remove();
            });
         }removeItem();
       }testArray();

【问题讨论】:

  • 当你使用 jquery 的时候添加jquery标签给他们

标签: javascript arrays


【解决方案1】:

单击时您不会从数组中删除项目,您只是在单击时删除包含元素的 li 标签,为了在单击项目的 li 时也从数组中删除元素,您必须使用 splice 方法从数组中删除元素作为

    var itemClicked = $('ul.fruit li');
       itemClicked.on('click', function () {
       $(this).remove();
       var item = $(this).text();
       var index = Fruit.indexOf(item);
      Fruit.splice(index,1);
   });

Check the Working Fiddle Here

【讨论】:

  • 索引旁边的 1 代表什么? (索引,1)?我意识到我可以在其中输入任何数字,它仍然可以工作......
  • 1 表示从索引(作为第一个参数传递)位置从数组中删除的项目数
  • 我注意到,在我删除一个项目然后添加另一个项目后,我无法再删除任何项目??
  • 他们是否有办法解决这个问题,以便在我删除一个项目然后将一个项目添加回数组之后,我可以再次删除一个项目?
  • 我已经修复了,你可以检查一下小提琴jsfiddle.net/chakravarthysm/yvru3a2e/1,你只需绑定 ul 以获取传递 li 的点击事件,并在回调中重复与 itemclicked 事件回调中相同的操作
猜你喜欢
  • 2021-08-03
  • 2014-12-21
  • 2021-10-19
  • 2012-02-21
  • 2020-10-19
  • 1970-01-01
  • 2014-09-21
  • 2021-06-18
相关资源
最近更新 更多