2016-03-11 104 views
0

我需要打印由用户通过文本框输入的json对象数组,该功能通过按钮单击执行。我需要将用户输入的所有字符串存储在文本框中。在我的控制台在此甲[{"aaa"},{"bbb"},{"ccc"}]从本地存储打印json对象

<!DOCTYPE html> 
<html> 
    <body> 
    Enter the string : 
    <input type="text" id="names"> 
    <button onclick="myFunction()"> Click Me</button> 

    <script> 
    function myFunction(){ 
     var myNames = new Array(); 
     myNames = document.getElementById("names").value; 
     this.names = myNames; 

     localStorage["myNames"] = JSON.stringify(myNames); 
     console.log(JSON.stringify(myNames)); 

     var name = JSON.parse(localStorage["myNames"]); 
     console.log(name); 
    }; 
    </script> 
    </body> 
</html> 

显示它目前这个代码只打印数据这样"aaa",如果我添加了另一个数据bbb,仅第二数据显示"bbb"。我希望所有的数据都可以在这个合成文件[{"aaa"},{"bbb"},{"ccc"}]中查看,甚至可以像这样[{“name”:“aaa”},{“name”:“bbb”},{“name”:“ccc”}]。 有人可以帮我吗?

+0

备注:它总是更好刚刚闭幕''之前,让您的脚本。 – Cohars

+0

@公司 - 这是不正确的。有些情况下,最好把它放在头上。 – Quentin

+0

另请注意''{“aaa”},{“bbb”},{“ccc”}]'不是有效的JSON。 @Quentin,是的,大部分时间它可以让你免于一些错误。这里没关系,因为'document.getElementById(“names”)'在一个函数中。但我应该在外面。 – Cohars

回答

1

你可以试试这个:

var myNames = [] 

    function myFunction(){ 
     var oldItems = JSON.parse(localStorage.getItem('myNames')) || []; 

     newItem = {"name":document.getElementById("names").value}; 
     oldItems.push(newItem); 

     localStorage.setItem("myNames", JSON.stringify(oldItems)); 

     console.log(JSON.parse(localStorage.getItem("myNames"))); 
    }; 
+0

我越来越像这样[[“”,“dd”,“ddd”,“gg”,“ggg”]是否有任何posibilityblity得到像这样[{“aaa”},{“ bbb“},{”ccc“}]或[{”name“:”aaa“},{”name“:”bbb“},{”name“:”ccc“}] –

1

,你必须先找回它们并改变他们。

下面是两个功能;向阵列中添加一个项目。如果数组尚未出现(因此以前没有数据输入),它会为您创建一个新数组。

然后它再次将数据存储在localStorage中。

在输入需要添加的新数据时,它首先检索任何以前的条目并将其更改。然后它再次存储等等。

function myFunction(){ 
    var myNames = localStorage.getItem('myNames'), 
     parsedArray = JSON.parse(myNames), 
     valueToAdd = document.getElementById("names").value; 

    // Add the new item to the original array. 
    parsedArray = addToArray(parsedArray, valueToAdd); 
    localStorage.setItem('myNames', JSON.stringify(parsedArray)); 

    console.log(parsedArray); 
}; 

function addToArray (array, item) { 
    // If the array doesn't exist, create one 
    if (!array) { 
    array = []; 
    } 

    // Add the item to the array. 
    array.push(item); 

    return array; 
}; 
+0

我得到错误4未捕获TypeError:localStorage.get不是functionmyFunction @ jsontest.html:14onclick @ jsontest.html:80 –

+0

我的坏,那应该已经localStorage.getItem – Matthijs