0

有没有更快更优化的方法来实现这一点?

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");
    }
}
4

1 回答 1

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;
    }
}
于 2013-02-05T19:40:54.700 回答