.css在jquery中使用localstorage时不是函数错误
实际上,我已经创建了一个导航选项卡。我想要的是,导航选项卡上单击的div应该从白色背景变为黑色背景,即使在刷新之后,也应该保持黑色,直到单击任何其他选项卡为止 我尝试了下面的代码,但它抛出了一个错误,说“.css不是函数”.css在jquery中使用localstorage时不是函数错误,jquery,html,Jquery,Html,实际上,我已经创建了一个导航选项卡。我想要的是,导航选项卡上单击的div应该从白色背景变为黑色背景,即使在刷新之后,也应该保持黑色,直到单击任何其他选项卡为止 我尝试了下面的代码,但它抛出了一个错误,说“.css不是函数” $(文档).ready(函数(){ if(localStorage.getItem(“单击”)){ var clickedtab=localStorage.getItem(“单击”); 点击tab.css('background','black'); }否则{ $(“#ho
$(文档).ready(函数(){
if(localStorage.getItem(“单击”)){
var clickedtab=localStorage.getItem(“单击”);
点击tab.css('background','black');
}否则{
$(“#home”).css('background','black');
}
$(“#主页”)。单击(函数(){
localStorage.setItem('clicked',$(this.attr('id'));
});
$(“#配置文件”)。单击(函数(){
localStorage.setItem('clicked',$(this.attr('id'));
});
$(“#通知”)。单击(函数(){
localStorage.setItem('clicked',$(this.attr('id'));
});
});代码>
家
轮廓
通知
首先请注意,代码中有几个无效的引号<代码>“
和”
需要替换为“
。还要确保你使用的双引号也是有效的;它们只能是“
逻辑的问题在于,您从localStorage检索到的clickedtab
值是先前单击的div
的id
字符串。您需要从中创建一个jQuery对象,以便在该元素上调用jQuery方法,例如css()
为此,您可以将id
连接到选择器,并将其作为jQuery对象的参数提供。如果localStorage中没有保存任何内容,您还可以通过向选择器提供默认值来简化逻辑,还可以使用公共类来选择div
元素,而不是重复相同的单击句柄r N次。请尝试以下操作:
$(文档).ready(函数(){
var activetab=localStorage.getItem(“单击”)||“主页”;
$('#'+activetab).css('background','black');
$(“.menu div”)。单击(函数(){
localStorage.setItem('clicked',this.id);
});
});
家
轮廓
通知
请注意,工作示例在Fiddle中,因为代码段对访问本地存储有限制。var clickedtab=localStorage.getItem(“clicked”);这里clickedtab是字符串而不是jQuery选择器,显然是clickedtab.css()将给出错误。
clickedtab
有问题,您不能使用带有变量的css函数。这是您想要的吗?您应该使用单引号而不是'id'
,那么我应该怎么做?有简单的解决方案吗?