2017-09-22 135 views
0

我有一個數組保存在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

+0

你沒有使用函數'deldata' ...?你正在使用'JSON.stringify(datarray)',但改變'數據'。請重新考慮您的問題,然後重試 –

回答

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