Javascript 我的代码没有显示回元素
我有以下jQuery代码:Javascript 我的代码没有显示回元素,javascript,jquery,Javascript,Jquery,我有以下jQuery代码: $("#options").popup(null, Settings.DialogOptions) .on("onOk", function(){ Settings.SaveSettings( ); Settings.CloseSettings( ); switch(Settings.GetSetting("displayId")){ case "true": $("#nextId").show();
$("#options").popup(null, Settings.DialogOptions)
.on("onOk", function(){
Settings.SaveSettings( );
Settings.CloseSettings( );
switch(Settings.GetSetting("displayId")){
case "true":
$("#nextId").show();
$("label[for=nextId]").show();
break;
case "false":
$("#nextId").hide();
$("label[for=nextId]").hide();
break;
}
});
我必须使用以下案例来测试我的代码:
displayId=false
:代码工作正常,它隐藏了我的两个元素displayId=true
:代码不工作,我的元素没有显示出来控制台中没有任何错误,但我不知道如何使代码正常工作。谁能帮助我?如果您真的在处理字符串,可能是空格或大写的问题:
// ----v -----v
switch($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true"){
case true: // <== No quotes
$("#nextId").show();
$("label[for=nextId]").show();
break;
case false: // <== No quotes
$("#nextId").hide();
$("label[for=nextId]").hide();
break;
}
或者,当您只是根据一个标志显示/隐藏时:
$("#nextId").add("label[for=nextId]").toggle($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true");
你能再给我看一些代码吗。也许是一些HTML和你的设置类?这是打字错误吗?根据你的代码,true应该显示它们,false应该隐藏它们。我一点也不知道你想做什么。请解释?“
displayId=true
:代码工作正常,它隐藏了我的两个元素”这不是代码在true
时想要做的。我看到它显示而不是隐藏“true”
的元素。如果获取displayId“true”,则会出现一些混乱,因为您显示了两个元素。不,实际上,我的设置保存在本地存储中,当然,它保存为字符串。但是,我的第二个案例:开关中的起作用。为什么第一个没有?这对我有什么帮助$.trim(Settings.GetSetting(“displayId”).toLowerCase())
@Victor:$.trim
删除空白toLowerCase
确保字符串为小写。这样,“True”
,“True”
,“True”
,所有这些最终都与“True”
匹配。分支很好,因此它必须是正在测试的值。您的想法很好,但是我的displayId
的值为$(“#复选框”)。是(“:checked”)代码>@Victor:除了使用浏览器内置的调试器单步执行并查看发生了什么以外,我不知道该告诉你什么。分支逻辑没有问题,它必须是值。
$("#nextId").add("label[for=nextId]").toggle($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true");