2010-12-10 7 views
0

私は動的に作成されたサブメニューの3つのレベルを持っています。私はclass = "active"を追加したい、テキストは同じURLを持つ。href属性が同じパスを持つ3レベルのメニューでクラスをアクティブにする方法

スペースとコンマはアンダースコアに置き換えられます。

例えば、ガラス、プラストは、グミOG porselenページは次のようになります

http://www.mywebsite.com/folder/Glass_plast_gummi_og_porselen.asp 

各href属性はURLと同じパスを持っている

HTML私はあなたに感謝

<ul id="submenu"> 
     <ul><li><a href="Grunnskole.asp" title="" class="">Grunnskole</a> 


      <ul><li><a href="Forskerspiren.asp" title="" class="">Forskerspiren</a> 


      <ul><li><a href="Sikkerhet.asp" title="" class="">Sikkerhet</a> 


      </li><li><a href="Laboratorieutstyr(1).asp" title="" class="">Laboratorieutstyr</a> 


      </li><li><a href="Glass_plast_gummi_og_porselen.asp" title="" class="">Glass, plast, gummi og porselen</a> 


      </li><li><a href="Datalogging.asp" title="" class="">Datalogging</a> 


      </li></ul></li><li><a href="Mangfold_in_naturen.asp" title="" class="">Mangfold in naturen</a> 


      </li><li><a href="Kropp_og_helse.asp" title="" class="">Kropp og helse</a> 


      </li><li><a href="Verdensrommet.asp" title="" class="">Verdensrommet</a> 


      </li><li><a href="Fenomener_og_stoffer.asp" title="" class="">Fenomener og stoffer</a> 


      </li></ul></li><li><a href="Sikkerhet_og_inventar(1).asp" title="" class="">Sikkerhet og inventar</a> 


      </li><li><a href="Laboratorieutstyr.asp" title="" class="">Laboratorieutstyr</a> 


      </li></ul> 

    </ul> 

前進。

答えて

2

あなたはwindow.location.pathnameの使用ファイル名だけを取得するためには、その後に属性エンド・使用することができますまたはセレクタ属性が-等しい:このメソッドを使用して

// Get the current file name from window.location.pathname 
var file = window.location.pathname.split("/").pop(); 

// Look for <a> elements whose `href` matches the file 
$("#submenu a[href$='"+file+"']").addClass("active"); 

を、あなたは持っていません2文字がアンダースコアに置き換えられたあいまいさ。

0

作品:http://www.jsfiddle.net/BBvLN/ URLをクリーンアップする方法は正しくありません。また、aタグに含まれるテキストではなく、aタグのhrefと一致させたいとします。

var url = "http://www.mywebsite.com/folder/Glass_plast_gummi_og_porselen.asp"; 
var slug = url.replace('http://www.mywebsite.com/folder/',''); 

$("#submenu a[href=" + slug + "]").addClass("active"); 
+0

申し訳ありません。 – shin

+0

@shin:Andy E(+1)からファイル名を取得する方法は、よりエレガントで堅牢です。アイデアはjQueryコードに関して同じです。 –

関連する問題