簡體   English   中英

如何使用jquery從數組中刪除選定的值

[英]How to remove the selected value from the array using jquery

我想從數組中刪除特定值。 我編寫的代碼如下:

   $(".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。 我怎樣才能做到這一點。

你可以這樣做:

var myArray = [10, 20, 30, 40, 50];
var removeThis = 30;

myArray = jQuery.grep(myArray, function(data){
return data != removeThis;
});

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 () {  

我會做這樣的事情:

$("#TXT").on("click", ".remove", function () {      
    var removeitem = $(this).parent().remove().attr('id');     
    pushvar.splice($.inArray(removeitem, pushvar)-1, 1);
});

因為這似乎對我有用 - > FIDDLE ,但沒有任何HTML,有很多猜測?

試試這個:

$(".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);
});

試試這樣吧

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;
  });

見演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM