2016-05-26 16 views
0

確かに、次のJavascriptを配置するよりスマートな方法があります。私は 'エンジニアリング'や 'プロジェクトデリバリー'のようなGET変数を持っていますが、将来は別のものになる可能性があります。URL変数がaddclassよりIDと等しい場合

次に、GET変数に対応する必要があるIDを持つリンクが本文にあります。

 if(window.location.href.indexOf("division=engineering") > -1) { 
      jQuery("a#engineering").addClass("active"); 
     } 

     if(window.location.href.indexOf("division=project_delivery") > -1) { 
      jQuery("a#project_delivery").addClass("active"); 
     } 

     if(window.location.href.indexOf("division=new_zealand") > -1) { 
      jQuery("a#new_zealand").addClass("active"); 
     } 

     if(window.location.href.indexOf("division=infrastructure") > -1) { 
      jQuery("a#infrastructure").addClass("active"); 
     } 

誰かがこのjQueryをより効率的に構成するのを手伝ってもらえますか?

+0

jQuery( "a#" + variablevalue).addClass( 'active'); –

答えて

2

あなたはこのソリューションを試すことができます。

var key = window.location.href.match(/division=(?:[a-zA-Z0-9_]+)/g)[0].replace(/^division=/, ''); 
if(key) jQuery("a#" + key).addClass("active"); 
0

あなたが注意

var div=<your get> // IE. engineering and etc 
if(window.location.href.indexOf("division="+div) > -1) 
{ 
      jQuery("a#"+div).addClass("active");     
} 

、このような何かをしようと、VARにあなたの取得データを置くことによってrepeatationをomittすることができます:私はテストしていないので、コードが唯一のアイデア目的でマイナーなバグが存在し得ます。

0

これを試してみてください。

(function(){ 
    var temp = location.pathname.split("division=")[1]; 
    jquery('a#' + temp).addClass('active'); 
}()); 
+0

「http://server/doc.html?division = something&param2 = value2'」のようなURLはどうなりますか? –

+0

それは単なるアイデアであり、徹底的な実装ではありませんが、場所からgetパラメータの値を取得する他の方法があります。 – Vibhanshu

0

私はあなたがこのように試みることができると思う:

function getParameterByName(name, url) { 
    if (!url) url = window.location.href; 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

そしてちょうど

jquery('a#' + getParameterByName('division')).addClass('active'); 
を呼び出します
関連する問題