javascript - 将 css 附加到当前菜单

标签 javascript jquery css

我正在尝试将 css 标记添加到我的菜单以标识当前页面和当前父菜单,如下所示: http://myweb.com/#about - 这是一个带有 child 的父菜单 http://myweb.com/about/history - 这是一个有内容的页面 http://myweb.com/about/vision -这是一个有内容的页面

这是标记

<ul id="menu"  class="nav-main">                         
<li><a href="#about">About</a> 
<ul>
<li><a href="http://www.myweb.com/about/history">History</a></li>
<li><a href="http://www.myweb.com/about/vision">Vision</a></li>
</ul>
</li>
<li><a href="#contact">contact</a> 
<ul>
<li>.....</li>
</ul>
</li>
</ul>

我有下面的javascript

<script type="text/javascript">
$("ul#menu.nav-main li a[href='#@Request.Url.LocalPath.Split('/')[1]']").parent("li").addClass("current-menu-item");
</script>

这标记父菜单和所有子菜单而不是所需的。那是;仅标记父菜单和特定页面。例如在 http://myweb.com/about/history我只想要那个页面和http://myweb.com/#about要标记的父菜单。任何帮助将不胜感激

最佳答案

下面的代码可以帮到你

J查询:

//for example i hardcoded the url below
var url='http://www.myweb.com/parent-info/stuff';
//when you test in live replace above code by below
//var url $(location).attr('href') 
var url_cnt=url.split('/');
if(url_cnt[url_cnt.length-1].length != 0 && url_cnt[url_cnt.length-2].length!=0){
$("#menu a").filter(function(){ return $(this).text().toLowerCase().indexOf(url_cnt[url_cnt.length-1].toLowerCase()) > -1;}).addClass("current-menu-item");
$("#menu a").filter(function(){ return $(this).text().toLowerCase().indexOf(url_cnt[url_cnt.length-2].toLowerCase()) > -1;}).addClass("current-menu-item");
}

这是最新更新的 JSFiddle dinn:http://jsfiddle.net/jvyLtr82/17/

关于javascript - 将 css 附加到当前菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507049/

相关文章:

javascript - 在 Ember.js 中销毁对象

javascript - RxJS Observables 只能由一个订阅者处理吗?

jquery - 通过数据属性选择元素

javascript - 背景颜色背景图像之间的层文本

javascript - 可以从 Canvas 构造函数创建 HTML5 Canvas 元素吗

javascript - 为什么 $($) 会使我的页面崩溃?

jquery - jqGrid:结合 sortableRows 和 gridDnD(重复行)

javascript - jQuery thead 对象不能 append tr 对象

css 填充问题

css - Gtk3 css 应用类不起作用?