更快更优化的方式这样做?

时间:2013-02-05 19:31:36

标签: jquery optimization

是否有更快更优化的方法来实现这一目标?

if (window.location.href.indexOf('/search/?') >= 0) {
    if ($.cookie("Layout") == "Poster") {
        $("link").attr("href", "../css/list.css");
    } else if ($.cookie("Layout") == "Poster") {
        $("link:first").attr("href", "css/list.css");
    }
}

if (window.location.href.indexOf('/search/?') >= 0) {
    if ($.cookie("Layout") == "Description") {
        $("link").attr("href", "../css/desc.css");
    } else if ($.cookie("Layout") == "Description") {
        $("link:first").attr("href", "css/desc.css");
    }
}

1 个答案:

答案 0 :(得分:0)

我发现你实际上在else if子句中测试与原始条件相同的东西。这是多余的。 else if条件将永远不会执行,因为您处于同一条件表达式的else子句中(让我自己只是考虑它而感到困惑)..

if ($.cookie("Layout") == "Poster") {
  ...
}else if ($.cookie("Layout") == "Poster") { ... } 

那应该对你说错了......第二个if语句将永远不会执行......

您可能想要做的是使用switch语句。类似的东西 -

if (window.location.href.indexOf('/search/?') >= 0) { 
    switch($.cookie("Layout")){
       case "Layout" :
         // behavior for "Layout"
       break;
       case "Description" : 
         // behavior for "Description"
       break;
       default : 
         // behavior for unknown $.cookie("Layout") value
       break;
    }
}