如果localstorage变量为true,如何在javascript中隐藏元素

如果localstorage变量为true,如何在javascript中隐藏元素,javascript,Javascript,我试图在页面加载时隐藏视频,并在按下任何链接后保持视频显示 这是我当前的代码 var videoplayer = document.getElementById("videoplayerlayer"); var links = document.getElementsByTagName("a"); if(localStorage !== 'undefined') { console.log("localStorage exists") if(localStorage["v

我试图在页面加载时隐藏视频,并在按下任何链接后保持视频显示

这是我当前的代码

var videoplayer = document.getElementById("videoplayerlayer");
var links       = document.getElementsByTagName("a");

if(localStorage !== 'undefined')
{
  console.log("localStorage exists")

  if(localStorage["vv"] == false)
  {
    videoplayer.style.display = "none";
    localStorage["vv"] = false;
  }
  else
  {
    for( i=0; i<links.length; i++ )
    {
      links[i].onclick = function()
      {
        localStorage["vv"] = true;
        videoplayer.style.display = "block";
        console.log(localStorage["vv"]);
      }
    }
  }
}
else
{
  localStorage["vv"] == false;
}
var videoplayer=document.getElementById(“videoplayerlayer”);
var links=document.getElementsByTagName(“a”);
if(localStorage!=“未定义”)
{
log(“本地存储存在”)
if(localStorage[“vv”]==false)
{
videoplayer.style.display=“无”;
localStorage[“vv”]=false;
}
其他的
{

对于(i=0;i
本地存储
仅保存字符串
localStorage[“vv”]=false;
存储字符串
,这不是false

通常我会存储JSON并对其进行解析。不过,这可能有些过分,只需将
“Y”
“N”
存储为标志并检查:

var videoplayer = document.getElementById("videoplayerlayer");
var links       = document.getElementsByTagName("a");

if (typeof localStorage !== 'undefined')
//  ^^^^^^ Note 2
{
  console.log("localStorage exists")

  if(localStorage["vv"] == "N")
  {
    videoplayer.style.display = "none";
    // No need, it's already stored - localStorage["vv"] = false;
  }
  else
  {
    for( var i=0; i<links.length; i++ )
    //   ^^^^---- Note 1
    {
      links[i].onclick = function()
      {
        localStorage["vv"] = "Y";
        videoplayer.style.display = "block";
      }
    }
  }
}
/* You don't want this, it'll throw an error, since we know `localStorage` is falsy
else
{
  localStorage["vv"] == false;
}
*/

注1:您的代码受到了攻击(这是我贫血小博客上的一篇文章)。请务必声明您的变量。请参阅上面的
“Note”
注释


注2:您对是否可以使用本地存储的检查不正确。我已将其更新为您上面可能的意思,但请参阅以了解您希望使用的更彻底的检查



注3:我建议使用现代事件处理,而不是设置
onclick

localStorage
仅保存字符串
localStorage[/vv]=false;
存储字符串
,这并不是虚假的

通常我会存储JSON并对其进行解析。不过,这可能有些过分,只需将
“Y”
“N”
存储为标志并检查:

var videoplayer = document.getElementById("videoplayerlayer");
var links       = document.getElementsByTagName("a");

if (typeof localStorage !== 'undefined')
//  ^^^^^^ Note 2
{
  console.log("localStorage exists")

  if(localStorage["vv"] == "N")
  {
    videoplayer.style.display = "none";
    // No need, it's already stored - localStorage["vv"] = false;
  }
  else
  {
    for( var i=0; i<links.length; i++ )
    //   ^^^^---- Note 1
    {
      links[i].onclick = function()
      {
        localStorage["vv"] = "Y";
        videoplayer.style.display = "block";
      }
    }
  }
}
/* You don't want this, it'll throw an error, since we know `localStorage` is falsy
else
{
  localStorage["vv"] == false;
}
*/

注1:您的代码受到了攻击(这是我贫血小博客上的一篇文章)。请务必声明您的变量。请参阅上面的
“Note”
注释


注2:您对是否可以使用本地存储的检查不正确。我已将其更新为您上面可能的意思,但请参阅以了解您希望使用的更彻底的检查



注3:我建议使用现代事件处理,而不是在下面设置
onclick

代码可以帮助您

$get('<%= AnchorId.ClientID %>').click(function(){
                  if(localStorage !== 'undefined'){
                         if(localStorage == false)
                          {
                            $get('<%= videoplayerlayer.ClientID %>').hide();
                            localStorage["vv"] = false;
                          }
                       else
                       {
                          $get('<%= videoplayerlayer.ClientID %>').show()
                          localStorage["vv"] = true;
                       }
                  }

            });
$get(“”)。单击(函数(){
if(localStorage!=“未定义”){
if(localStorage==false)
{
$get(“”).hide();
localStorage[“vv”]=false;
}
其他的
{
$get(“”).show()
localStorage[“vv”]=true;
}
}
});

下面的代码可以帮助您

$get('<%= AnchorId.ClientID %>').click(function(){
                  if(localStorage !== 'undefined'){
                         if(localStorage == false)
                          {
                            $get('<%= videoplayerlayer.ClientID %>').hide();
                            localStorage["vv"] = false;
                          }
                       else
                       {
                          $get('<%= videoplayerlayer.ClientID %>').show()
                          localStorage["vv"] = true;
                       }
                  }

            });
$get(“”)。单击(函数(){
if(localStorage!=“未定义”){
if(localStorage==false)
{
$get(“”).hide();
localStorage[“vv”]=false;
}
其他的
{
$get(“”).show()
localStorage[“vv”]=true;
}
}
});

使用
localStorage.getItem('vv')
localStorage.setItem('vv',“true”)
您的逻辑有缺陷。您检查localStorage条目是否为“false”,然后将其设置为false。它永远不会变为true。@TamilSelvanC:
[]
访问是为
localStorage
@T.J.Crowder定义的。谢谢,我现在学到了这一点only@TamilSelvanC:很乐意提供帮助。
localStorage.getItem(“foo”)
localStorage[“foo”]
,以及
localStorage.foo
都可以访问
foo
项。:-)您必须对polyfills使用
setItem
getItem
,但是现在您不需要polyfills,几乎所有东西都有
localStorage
。使用
localStorage.getItem('vv')
localStorage.setItem('vv',true')
您的逻辑有缺陷。您检查localStorage条目是否为“false”然后将其设置为false。它将永远不会变为true。@TamilSelvanC:
[]
访问是为
本地存储定义的。谢谢,我现在知道了only@TamilSelvanC:很乐意提供帮助。
localStorage.getItem(“foo”)
localStorage[“foo”]
localStorage.foo
都可以访问
foo
项。:-)你必须使用
setItem
getItem
进行多边形填充,但是现在你不需要多边形填充,几乎所有的东西都有
localStorage
。t.J我已经在很多帖子上看到了你的许多令人敬畏的直截了当的答案,在你成为一个有生之年的人之前aver.谢谢你的澄清!T.J.在你成为救生员之前,我已经在很多帖子上看到了你令人敬畏的直截了当的回答。谢谢你的澄清!