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") { ... } 

それは何か間違っているとあなたに叫ぶはずです...2番目の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 に答える