如何在本地保存javascript变量?

时间:2014-01-23 11:03:47

标签: javascript jquery

我是Javascript / Jquery的初学者,我正在使用jquery mobile和jquery制作移动网络应用程序,我无法弄清楚如何在一个地方显示我的所有输入。无论我在表格中输入多少数据,它总是显示最后输入的数据。请问,有什么帮助吗?

$(document).ready(function() {
   if(localStorage['linrval'],localStorage['linrdate']){
      $('#inrhist').prepend('<div class="inrval">'+localStorage['linrdate']+ '  ----  '   +localStorage['linrval']+ '</div>');
   };

$('#inrbtn').click(function(){
   var inrval=$('input[name=user]').val();
   var inrdate=$('input[name=dateinr]').val();
   localStorage.setItem('linrval',inrval);
   localStorage.setItem('linrdate',inrdate);
   $('#inrhist').prepend('<div class="inrval">'+inrdate+ '  ----  ' +inrval+ '</div>');
   });

2 个答案:

答案 0 :(得分:0)

你有这个:

if(localStorage['linrval'],localStorage['linrdate']){...}

当且仅当localStorage['linrdate']为真时,此类表达式才为真。 localStorage['linrval']的值基本上被忽略了。

也许你想要这个:

if( localStorage['linrval'] || localStorage['linrdate'] ){...}
                            ^^

您还要覆盖localStorage值:

localStorage.setItem('linrval',inrval);
localStorage.setItem('linrdate',inrdate);

答案 1 :(得分:0)

每次需要添加到数组中时,都需要更改一些内容,而不是使用相同的属性更新项值。 localStorage仅支持字符串。

   $(document).ready(function() {

            //localStorage.removeItem("users");

        var userStr = localStorage.getItem('users');

        if (userStr != null && userStr != undefined) {
            var jsonObj = JSON.parse(userStr);

            console.log("onload value", jsonObj);

            $.each(jsonObj.items, function(i, item) {
                $('#inrhist').prepend('<div class="inrval">'+item.user +'--'+item.dateinr+'</div>');
             });
        }

        $('#inrbtn').click(function () {

            var dataItems = { items: [] };

            var inrval = $('input[name=user]').val();
            var inrdate = $('input[name=dateinr]').val();

            var item = { user: inrval, dateinr: inrdate };

            var usersList = localStorage.getItem('users');

            var jsonObj;

            if (usersList == null) {
                dataItems.items.push(item);                  
                jsonObj = JSON.parse(JSON.stringify(dataItems));
            }
            else {
                jsonObj = JSON.parse(usersList);
                jsonObj.items.push(item);
            }

            jsonStr = JSON.stringify(jsonObj);

            console.log(jsonStr);

            localStorage.setItem("users", jsonStr);

            $('#inrhist').prepend('<div class="inrval">' + inrdate + '--' + inrval + '</div>');

        });

    });

LIVE DEMO

相关问题