我的代码没有显示元素

时间:2013-07-30 15:31:18

标签: javascript jquery

我在下面有这个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;
    }
});

我必须要测试我的代码:

  1. displayId = false代码正常运行,它隐藏了我的两个元素
  2. displayId = true代码不起作用,我的元素不会显示回来。
  3. 我在控制台中没有收到任何错误,但我不知道如何使我的代码工作。谁能帮帮我?

1 个答案:

答案 0 :(得分:1)

如果你真的在处理字符串,那可能是空格或大写的问题:

// ----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;
}

当然,如果您处理的是真或假,if/else是标准结构:

if ($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true"){
    $("#nextId").show();
    $("label[for=nextId]").show();
}
else {
    $("#nextId").hide();
    $("label[for=nextId]").hide();
}

或者你只是根据旗帜显示/隐藏:

$("#nextId").add("label[for=nextId]").toggle($.trim(Settings.GetSetting("displayId")).toLowerCase() === "true");