使用 Javascript 突出显示当前页面链接
Highlight current page link using Javascript
我在使用 Javascript 突出显示侧边栏中的活动菜单项时遇到问题。所以我在 中调用 setPage() 以突出显示当前菜单项,但没有任何反应。有什么想法可以解决吗?
顺便说一句,这是我的代码:
.HTML:
<nav class="sidebar-nav">
<a class="sidebar-nav-item" href="nav.html">Main page </a>
<a class="sidebar-nav-item" href="page2.html">Dummy page 2</a>
<a class="sidebar-nav-item" href="page3.html">Dummy page 3</a>
<a class="sidebar-nav-item" href="page4.html">Dummy page 4</a>
<script language="text/javascript">setPage()</script>
</nav>
.CSS:
* {
margin:0;
padding:0;
}
body {
background:#CCC;
font:140% "Times New Roman", Times, serif, Arial;
line-height:1.5;
font-weight:bold;
}
.sidebar-nav {
border-bottom: 1px solid rgba(255,255,255,.1);
}
.sidebar-nav-item {
display: block;
padding: .5rem 1rem;
border-top: 1px solid rgba(255,255,255,.1);
}
.sidebar-nav-item.active,
a.sidebar-nav-item:hover,
a.sidebar-nav-item:focus {
text-decoration: none;
background-color: rgba(255,255,255,.1);
border-color: transparent;
}
Javascript:
function extractPageName(hrefString) { // This function is
var arr = hrefString.split('/');
return (arr.length < 2) ? hrefString : arr[arr.length - 2].toLowerCase() + arr[arr.length - 1].toLowerCase();
}
function setActiveMenu(arr, crtPage) {
for (var i = 0; i < arr.length; i++) {
if (extractPageName(arr[i].href) == crtPage) {
arr[i].className = "sidebar-nav-item active";
}
}
}
function setPage() {
if (hrefString = document.location.href)
hrefString = document.location.href;
else
hrefString = document.location;
if (document.getElementsByClassName("sidebar-nav") != null)
setActiveMenu(document.getElementsByClassName("sidebar-nav-item"), extractPageName(hrefString));
}
对不起,我的英语不好。
这不是language
,而是type
,这是你的第一个错误(虽然它可能有效,但根据标准它是不正确的。
要设置链接活动状态,请获取相应的anchor
(<a>
)元素并向其添加类active
。这应该可以工作,因为您已经为活动链接定义了样式,我认为这应该像现在一样工作。
您在setPage
功能中有 2 个问题:
if (hrefString = document.location.href)
=
符号表示值的分配,使用==
或===
进行比较。我真的推荐===
,因为它从字面上比较 2 个对象,而不是仅比较值,就像==
比较一样。
其次,hrefString
在此 if 语句之前没有定义(至少没有在您提供的代码中定义),因此 javascript 将抛出错误并停止执行。
相关文章:
- (html/css/javascript)试图使导航栏中的“当前页面”链接变成不同的颜色
- 导轨 4.宝石will_paginate.更改在 ajax 请求上设置的分页链接
- 想要点击高亮分页链接.这是我的密码
- Jquery 当前页面链接样式
- jqGrid不显示分页链接
- Ajax 分页链接自定义
- 如何将活动类分配给与号.js中的当前路由链接
- 为什么 CSS :active on link 不会突出显示当前页面链接
- 使用服务器端分页链接进行 ajax 无限滚动
- 如何使用 ajax 一次抓取一页,返回下一页链接并再次访问
- 如何在新页面中打开链接,然后从第 2 页链接回第 1 页
- 使用 Javascript 突出显示当前页面链接
- 使用Javascript高亮显示带有子菜单的当前页面链接
- 智能表分页链接不工作
- Google CustomSearchControl显示不一致的分页链接
- Will_paginate分页链接javascript不工作
- JQuery Mobile #首页链接重载页面
- 将输出图像设置为当前URL链接
- 使用jQuery更改当前页面链接的CSS
- 自动点击'下一页'链接,在Chrome DevTools控制台推送数组