如何根据位置和相应的href添加类
How to add class based on location and corresponding href?
我有一个带有简单标记的菜单,我的目标是根据当前页面的名称自动向菜单<li>
项添加一个类。。。。
相关标记为:
<ul class="sub-menu">
<li >
<a href="page_example_one.html">
<i class="icon-time"></i>
Timeline</a>
</li>
<li >
<a href="page_example_two.html">
<i class="icon-cogs"></i>
Page Two</a>
</li>
.... Many other elements
</ul>
当我在某个页面上时,我需要得到的非常简单(假设page_example_one.html)我需要相应的<li>
元素来有一个类似的附加类
<li class="active">
<a href="page_example_one.html">
<i class="icon-time"></i>
Timeline</a>
</li>
我试着用jQuery这样做:
jQuery(document).ready(function() {
// Get the current page name ( pathname)
var currentUrl = jQuery(location).attr('pathname');
// Get the element ( try at least )
var currentMenuItem = jQuery("sub-menu li a[href='" + currentUrl + "']");
// Add the class
currentMenuItem.addClass("active");
//Tried also something like this :
// jQuery("sub-menu li a[href='" + currentUrl + "']").find('a').addClass("active");
});
以上两种方法对我来说都失败了-(带VAR的注释方法和串联方法)但因为我的JS技能很低,我真的看不出我做错了什么(可能对了解JS的人来说很明显)
在解决了这个问题之后,我还想知道如何基于当前页面链接将跨度或类也添加到父菜单项(在子菜单的情况下)。。。
var currentMenuItem = jQuery("a[href='" + currentUrl + "']").parent()
在此处添加演示
通过其类ul.sub-menu
将子菜单作为目标。另外,您还可以通过.sub-menu
更广泛地针对类中的所有项目。单独的CCD_ 5将靶向理论上的<sub-menu>
元素。
获取链接的父级(<li>
):
var currentMenuItem = jQuery(".submenu li a[href='" + currentUrl + "']").parent();
还要检查currentUrl是否等于href。您可以将currentUrl输出到控制台进行调试,如下所示:
console.log(currentUrl);
相关文章:
- 在类似Facebook的社交墙中添加href
- 如果window.location.href.indexOf('player=1')添加样式
- 添加基于子<a>href
- 如何在标记href中添加按钮
- 将标记添加到您的 href
- 将href链接添加到通过js鼠标悬停显示的图像
- CSS 在悬停时使图像变暗 - 在其周围添加一个 href
- 如何为 href 添加额外值
- 将属性添加到带有href链接但没有#的元素
- 如果X与Y的href=匹配,则添加class'活动'-jQuery
- 将href添加到jquery中的.text输出
- (PHP&JavaScript)a href添加按钮赢得'我不适用于Mozilla,但适用于IE和谷歌
- JavaScript 获取要添加到锚标记中的 HREF 的页码
- 以编程方式添加 href 时缺少铬锚点下划线
- 需要按钮显示/隐藏图像旋转 href 添加到 javascript 代码中
- 将 HREF 添加到 JQuery 动态填充的选择
- 将location.href添加到脚本src中
- 如何根据位置和相应的href添加类
- 将ng href添加到angularjs中的按钮会更改按钮内文本的位置
- angularJs如何首先将href添加到$