2
我覺得這應該是一件容易的事,但我有問題。我有一個下拉菜單包裝在一個無序列表(由asp.net菜單控件生成),我試圖通過jquery添加額外的高亮顯示到選定的鏈接的父鏈接。下面是生成的HTML:jQuery的遍歷一個asp.net菜單
<div id="MainMenu" class="mainMenuControl">
<ul class="level1 static" role="menubar">
<li class="static" role="menuitem"><a class="level1 static selected" href="/default.aspx">Home</a>
</li>
<li class="has-popup static" aria-haspopup="MainMenu:submenu:3" role="menuitem"><a
class="level2 static" href="/store/prodcut.aspx">Product 1</a>
<ul id="MainMenu:submenu:3" class="level3 dynamic">
<li class="dynamic" role="menuitem"><a class="level3 dynamic" href="/store/product/category1.aspx">
Category 1</a> </li>
<li class="dynamic" role="menuitem"><a class="level3 dynamic" href="/store/product/category2.aspx">
Category 2</a> </li>
</ul>
</li>
<li class="has-popup static" aria-haspopup="MainMenu:submenu:10" role="menuitem"><a
class="level2 static" href="/store/paymentoptions.aspx">Ministries</a>
<ul id="MainMenu:submenu:10" class="level3 dynamic">
<li class="dynamic" role="menuitem"><a class="level3 dynamic" href="/store/paymentoptions/option1.aspx">
Option 1</a> </li>
<li class="dynamic" role="menuitem"><a class="level3 dynamic" href="/store/paymentoptions/option2.aspx">
Option 2</a> </li>
</ul>
</li>
</ul>
</div>
所以,無論頁面當前用戶是,相應的菜單鏈接將有類的選擇。「但是,如果它們位於其中一個主菜單選項的子頁面上,我希望下拉菜單中的鏈接以及它們的父鏈接都具有「選定」類。
我試圖添加類到基於父/子url路徑的鏈接,但我遇到了問題,因爲我在asp.net中使用url重寫,以便任何結尾的斜槓,默認文檔(index.html, default.aspx)或網址結尾(.html,.aspx等)被刪除。
我想這一點,但是,正如我所說,我無法得到它的工作:
$('.mainMenuControl ul a').each(function() {
if ($(this).attr('href') == window.location.pathname) {
$(this).addClass('selected');
if ($(this).parent('li').parents('.mainMenuControl ul.level1 li').length) {
$(this).parent('li').parents('.mainMenuControl ul.level1 li').find('a.static').addClass('selected');
}
}
});
任何建議,將不勝感激,謝謝!