将每个新String保存到Local Storage中的数组中

时间:2015-09-11 18:54:23

标签: javascript html5 local-storage

我正在尝试将从输入接收的每个新字符串(结果)保存到本地存储中的数组中,以便稍后使用

                $('.crearGpo').on('click',function() {
            bootbox.prompt("Name of the Gr", function(result ,e) {

                if(result != null && result !="" )
                {

                    names = [];
                    names[0]= result;
                    localStorage["names"] = JSON.stringify(names);
                    var storedNames = JSON.parse(localStorage["names"]);
                    console.log(storedNames);
                    localStorage.setItem('name', result);
                    name = localStorage.getItem('name');

                   $('.top-card-grupos ul ').last().append("<li><button class=\"btn\" id=\""+name+"\">"+name+"</button></li>");


                }



            });
        });

但只是保存最后一个字符串,而不是我收到的每一个字符串,任何帮助都会很棒

2 个答案:

答案 0 :(得分:2)

您正在为每个结果创建一个新数组,并且每次为其赋值时都不会递增数组索引,这意味着每个值都将被覆盖。尝试:

names = []; //Array for all results
var count = 0; //Keep track of the number of results

if(result != null && result !="" )
            {

                names[count++]= result; //Store and increment counter
                localStorage["names"] = JSON.stringify(names);
                var storedNames = JSON.parse(localStorage["names"]);
                console.log(storedNames);
                localStorage.setItem('name', result);
                name = localStorage.getItem('name');

               $('.top-card-grupos ul ').last().append("<li><button class=\"btn\" id=\""+name+"\">"+name+"</button></li>");


            }

答案 1 :(得分:0)

您正在每次点击时创建一个新阵列。您应该创建一次,然后在每次点击时将值推入其中。

像这样:

<ContentPage.ToolbarItems>
        <ToolbarItem Text="{Binding EditButtonText, Mode=TwoWay}" Clicked="EditClicked" Order="Secondary" />
</ContentPage.ToolbarItems>