如何在javascript中保存变量的值

时间:2012-07-02 15:53:58

标签: javascript jquery html

我是一个重定向到自己的页面。 (第二天和前一天的箭头) 在document.ready页面显示新的一天。

天数存储在localStorage中,如下所示:

for(var i = 0;i<status.length;i++)
  {
      localStorage["Day" + i] = status[i].name;
  }

我希望每次显示的默认日期为“Day0”,然后当用户点击下一个或上一个时间时显示另一天。

    $(document).ready(function () {
           $("#CurrentDay").empty();
           $("#CurrentDay").append(GetCurrentDay());
        });

   function GetCurrentDay() {
   localStorage["CurrentDay"] = localStorage["Day0"];
   return localStorage["CurrentDay"];
}

我让箭头调用这些函数:

  function GoToNextDay() {
    if (i != localStorage["SchoolDays"]+1) {
        i = i + 1;
        localStorage["CurrentDay"] = localStorage["Day" + i];
    }
    else {
        localStorage["CurrentDay"] = localStorage["Day" + 0];
    }
}

 function GoToPrevDay() {
    if (i != 0) {
        i = i - 1;
        localStorage["CurrentDay"] = localStorage["Day" + i];
    }
    else {

    localStorage["CurrentDay"] = localStorage["Day" + localStorage["SelectedDaysNumber"]];
    }
}

我想知道如何在脚本开头用“0”初始化它时如何存储值“i”,每当调用页面时它都会返回0,如果我没有价值我怎么知道我开始的地方?

3 个答案:

答案 0 :(得分:3)

您可以使用localStorage或globalStorage存储数据:

if(typeof localStorage['userName'] === "undefined") {
    // defining the localStorage variable
    localStorage.setItem('userName', 'taranfx');
}

alert("Your user is: " + localStorage.getItem('userName'));

或者即使刷新页面,您也可以使用cookie来存储值:

可以通过JavaScript创建,读取和删除Cookie。可以通过物业document.cookie访问它们。虽然你可以将document.cookie看作是一个字符串,但它并不是真的,你只能访问名称 - 值对。

如果我想为一个名字 - 值对'ppkcookie1 = testcookie'设置一个cookie,从我写这句话的那一天起七天后到期,我就

document.cookie =
  'ppkcookie1=testcookie; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/'
  1. 首先是名称 - 值对('ppkcookie1 = testcookie')
  2. 然后是分号和空格
  3. 然后是正确格式的失效日期('expires = Thu,2001年8月2日20:47:11 UTC')
  4. 再次分号和空格
  5. 然后是路径(path = /)
  6. 这是一个非常严格的语法,不要改变它!

    另外,即使看起来我正在将整个字符串写入字符串document.cookie,但只要我再次读出它,我就会看到名称 - 值对:

    ppkcookie1=testcookie
    

    http://www.quirksmode.org/js/cookies.html

答案 1 :(得分:1)

将其存储在localStorage中。首次启动脚本时,请检查是否typeof localStorage['your_var'] == "undefined",如果true将其设置为0,如果为false,则使用该值。

答案 2 :(得分:1)

您可以在网址中使用哈希(#)让您的脚本知道您现在在哪一天,或者您可以将该信息保存在Cookie中。

请注意,如果您在网址中使用哈希符号,您可以实际向其他人发送指向特定日期的链接,其中在Cookie中,每个“会话”基础仅表示该用户的浏览器将记住活动的哪一天那一刻。

所以例如:

www.example.com/#Day0

将是Day0的网址

www.example.com/#Day1

将是Day1的网址

然后在你的代码中你需要做这样的事情:

var current_day = window.location.hash;

并使用该变量来初始化数组。

每当有人点击进入另一天时,只需将历史记录推送到

这样的位置即可
var url = "#" + day_to_display;
if (history.pushState)
  history.pushState("", "", url);
else
  window.location = url;