【问题标题】:Delete element in array from Local storage via input value通过输入值从本地存储中删除数组中的元素
【发布时间】:2018-03-04 08:34:29
【问题描述】:

我在 localstorage 中保存了一个数组,并尝试根据输入值删除元素 onclick。我有下面的代码,但我不能让它工作。请帮忙,在此先感谢:)

var datarray = [];

function deldata() {

  // retrieve stored data (JSON stringified) and convert
  var storedData = localStorage.getItem("list_data_key");
  if (storedData) {
    datarray = JSON.parse(storedData);
  }


var titleValue = document.getElementById('listxt').value;
// Find and remove item from an array
var i = array.indexOf(titleValue);
if(i != -1) {
    array.splice(i, 1);
}
localStorage.setItem("list_data_key", JSON.stringify(datarray));
  datapost();
}

jsfiddle

【问题讨论】:

  • 你没有使用函数deldata...?而您正在使用JSON.stringify(datarray),但正在更改data。请重新考虑您的问题,然后重试

标签: javascript jquery arrays input local-storage


【解决方案1】:

注意你的变量名。

function deldata() {
  // retrieve stored data (JSON stringified) and convert
  var storedData = localStorage.getItem("list_data_key");
  if (storedData) {
    datarray = JSON.parse(storedData);
  }

  var titleValue = document.getElementById('listxt').value;
  // Find and remove item from an array
  var i = datarray.indexOf(titleValue);  //  HERE  (was 'array')
  if(i != -1) {
    datarray.splice(i, 1);  //  HERE  (was 'array')
  }
  localStorage.setItem("list_data_key", JSON.stringify(datarray));
  datapost();
}

【讨论】:

    【解决方案2】:

    改变

    var i = array.indexOf(titleValue);
    if(i > -1) {
        array.splice(i, 1);
    }
    

    var i = datarray.indexOf(titleValue);
    if(i > -1) {
        datarray.splice(i, 1);
    }
    

    【讨论】:

      猜你喜欢
      • 2016-08-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 2016-12-09
      相关资源
      最近更新 更多