Javascript 我的代码没有显示回元素

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();

我有以下jQuery代码:

$("#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");