簡體   English   中英

我如何從 jquery 中的 jquery 數組中刪除特定值

[英]How could i remove specific value from jquery array in jquery

我想從數組中刪除特定值,我嘗試按照以下腳本從數組中刪除值,但沒有用。

包含數組值的 HTML

<input type="hidden" class="image_array" id="image_array" name="image_array[]" value="20200207050212.jpg,20200207050214.jpg">

所以我的數組值是20200207050212.jpg,20200207050214.jpg & 我想從這個數組中刪除20200207050212.jpg但當我使用以下腳本時不刪除。

1

$(document).ready(function(){
  $(document).on("click", '.profile_delete_image', function(){
        var getImageName = $(this).attr('data-imagename');
        console.log(getImageName)
        var getImageArray =$('.image_array').val();
        var checkValueExist = (getImageArray.indexOf(getImageName) > -1);
        if(checkValueExist == true){
          var itemtoRemove = getImageName;
          getImageArray = $.grep(getImageArray, function(value) {
            return value != itemtoRemove;      
              console.log(getImageArray)
          });
        }
    });
})

2

$(document).ready(function(){
  $(document).on("click", '.profile_delete_image', function(){
        var getImageName = $(this).attr('data-imagename');
        console.log(getImageName)
        var getImageArray =$('.image_array').val();
        var checkValueExist = (getImageArray.indexOf(getImageName) > -1);
        if(checkValueExist == true){
          var itemtoRemove = getImageName;
          getImageArray.splice(1,1);
        }
    });
})

注意:當我執行 console.log 時,它會返回分隔值,例如

2
0
2
0
0
2
0
7
0
5
0
2
1
2
j
p
g

所以我不想要這個,我只想從數組中刪除給定的值並返回一個刪除了值的數組。

只需使用split()將字符串作為數組。

 var getImageName = '20200207050212.jpg' // Get your delete image name. var getImageArray = []; getImageArray = $('.image_array').val().split(','); getImageArray = getImageArray.filter(e => e !== getImageName); console.log(getImageArray);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="hidden" class="image_array" id="image_array" name="image_array[]" value="20200207050212.jpg,20200207050214.jpg">

看一下代碼片段,這是一個簡單的例子,這里我們有一個images數組,當單擊按鈕時,它將從image_array獲取要刪除的圖像。

檢查 images_array 是否具有值,並使用.split()將其轉換為數組。 然后遍歷數組並刪除圖像數組中的值是否匹配。

 var $ = jQuery; var images = ['20200207050212.jpg', '20200207050214.jpg', 'abc.jpg', 'image_123123.jpg']; $('#delete_image').on('click', function() { console.log('before delete', images); var image_arr = $('#image_array').val(); image_arr = image_arr ? image_arr.split(',') : image_arr; if (image_arr.length) { image_arr.forEach(function(img) { if (images.indexOf(img) !== -1) images.splice(images.indexOf(img), 1) }) console.log('after delete', images); } })
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script> <input type="hidden" class="image_array" id="image_array" name="image_array[]" value="20200207050212.jpg,20200207050214.jpg"> <button id="delete_image">Delete Image </button>

暫無
暫無

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

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