通过输入值从本地存储中删除数组中的元素

时间:2017-09-22 17:29:07

标签: javascript jquery arrays input local-storage

我在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

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

更改

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

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