2016-09-14 7 views
0

特定のページのbodyにクラスを追加しようとしています。下記のように、第2、第3、第4 if文以外のすべてのクラスが追加されます。私はおそらくそれがif文の順序付けのためだと思っていますか?よく分かりません。誰かが私を助けることができますか?JavaScriptを使用して 'body'にクラスを追加する

if (window.location.href.match(/\/shop\/\?category/)) { 
     jQuery('body').addClass('shop-category'); 
    } else if (window.location.href.match(/\/shop\/\?category=Chef/)) { //doesn't get added 
     jQuery('body').addClass('shop-category-chef'); 
    } else if (window.location.href.match(/\/shop\/\?category=Tactical/)) { //doesn't get added 
     jQuery('body').addClass('shop-category-tactical'); 
    } else if (window.location.href.match(/\/shop\/\?category=Tools/)) { //doesn't get added 
     jQuery('body').addClass('shop-category-tools'); 
    } else if (window.location.href.match(new RegExp('/shop/.+'))) { 
     jQuery('body').addClass('shop-item'); 
    } else if (window.location.href.match('/shop/')) { 
     jQuery('body').addClass('shop'); 
    } 

答えて

2

この順序が問題です。 ?category?category=Chefより前に一致します。順序を変更するだけです。

if (window.location.href.match(/\/shop\/\?category=Chef/)) { 
    jQuery('body').addClass('shop-category-chef'); 
} else if (window.location.href.match(/\/shop\/\?category=Tactical/)) { 
    jQuery('body').addClass('shop-category-tactical'); 
} else if (window.location.href.match(/\/shop\/\?category=Tools/)) { 
    jQuery('body').addClass('shop-category-tools'); 
} else if (window.location.href.match(/\/shop\/\?category/)) { 
    jQuery('body').addClass('shop-category'); 
} else if (window.location.href.match(new RegExp('/shop/.+'))) { 
    jQuery('body').addClass('shop-item'); 
} else if (window.location.href.match('/shop/')) { 
    jQuery('body').addClass('shop'); 
} 
関連する問題