如果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.在你成为救生员之前,我已经在很多帖子上看到了你令人敬畏的直截了当的回答。谢谢你的澄清!