根据最终网址路径段向列表项添加类
Add class to list item based on final URL path segment
all!菜鸟警报。当 a 的 href 值包含当前页面的结尾时,我正在尝试添加类"active"以列出导航中的项目。
例如,如果我在"http://www.website.com/about/overview/"上,我希望包含 a 且 href 为 "/overview/" 的 li 使类处于活动状态。
<ul>
<li><a href="http://www.website.com/about/overview/">Overview</a></li>
<li><a href="http://www.website.com/about/staff/">Staff</a></li>
<li><a href="http://www.website.com/about/membership/">Membership</a></li>
</ul>
如果我将"lastSegment"更改为"/overview",下面的脚本有效,但我需要脚本是动态的并抓取当前 url 的末尾。
<script type='text/javascript'>
$(function () {
$("ul > li a[href*='lastSegment']").closest('li').addClass('active');
});
</script>
我想我可以像这样抓住当前网址的结尾
var url = 'window.location.href';
var lastSegment = url.split('/').pop();
但我显然不知道如何在第一个脚本中使用"lastSegment"变量。有什么想法吗?
欢迎来到 Stack Overflow。
如果将选择器更改为$("ul > li a[href$='" + lastSegment + "']")
该部分将起作用。
但你也必须改变
var url = 'window.location.href';
自
var url = window.location.href;
var url = 'window.location.href';
这是字符串,您总是会在此行中得到"window.location.href"
var lastSegment = url.split('/').pop();
这是不正确的,您需要获取当前路径
var url = window.location.href;
您需要将此变量添加到选择器
$("ul > li a[href*='lastSegment']").closest('li').addClass('active');
你可以这样做
$("ul > li a[href*=" + lastSegment + "]").closest('li').addClass('active');
相关文章:
- 在Javascript中使用JQueryMobile向列表添加项目
- 角度 - 需要向选择下拉列表添加多个占位符
- Javascript:如何为列表添加价值并使其即时更新
- 如何为我的嵌入YouTube播放列表添加Facebook共享按钮
- 如何允许用户将播放列表添加到单个 YT 帐户
- 将值列表添加到值本身,不包括其自身的值
- 将多个英国邮政编码列表添加到谷歌地图
- 如何使用 JavaScript 将下拉列表添加到<跨度>
- 下划线模板,将列表添加到单个数组中
- 如何将地址列表添加到地图一侧
- 可以通过Javascript将选择下拉列表添加到我的winJS工具栏中吗?
- 如何将选择列表添加到自定义实体的案例表单中(注意:替换普通查找字段)
- 使用下拉列表添加/删除搜索框
- 如何使用zip.js将图像文件列表添加到zip文件中
- 如何在jQuery中向不同的下拉列表添加不同的前缀
- 如何在单击时以编程方式将网页列表添加到浏览器收藏夹中
- 单击按钮将下拉列表添加到新行
- 为每个从特定数字开始的x列表添加边框
- 在使用javascript向下拉列表添加项目并运行服务器端代码后,无效的回发或回调参数
- 选择Jplayer播放列表添加复选框