javascript - 在基于 url 的子页面上向主导航链接添加类
问题描述
我的主要导航只是主页上的“页内”链接。我还有一个包含三个页面的定价部分,它们作为带有 url 的子页面存在:/pricing/basic-pricing.html、/pricing/pro-pricing.html 和 /pricing/pricing-premium.html。
在这三个页面上,我有一个侧导航可以在这些页面之间来回切换。所以有两个导航元素(primary-nav 和 side nav)。当在子页面(即/pricing/basic-pricing.html)上时,我希望名为“定价”的主导航链接有一个活动类。
我让它与下面的代码一起工作,但想知道是否有更好的方法,以防我将来添加更多子页面。我不想为了容纳一个新页面而添加更多的 jQuery。现在它只查看url是否在href中包含字符串“定价”,然后将类添加到主导航中的“定价”链接。
<nav class="primary-nav">
<ul class="menu collapse vertical large-horizontal">
<li><a href="#features">features</a></li>
<li><a href="#options">options</a></li>
<li><a href="#pricing">pricing</a></li>
<li><a href="#testimonials">testimonials</a></li>
<li><a href="#contact">contact</a></li>
</ul>
</nav>
<ul class="vertical menu side-nav">
<li><a href="{{root}}pricing/basic-pricing.html">Basic Pricing</a></li>
<li><a href="{{root}}pricing/pro-pricing.html">Pro Pricing</a></li>
<li><a href="{{root}}pricing/premium-pricing.html">Premium Pricing</a></li>
</ul>
$(document).ready(function () {
$('.side-nav.menu a.is-active[href*="pricing"]').each(function () {
$('.primary-nav .menu a[href$=pricing]').addClass('is-active');
});
});
解决方案
您可以使用location
全局对象来检测您所在的位置,这里有一个链接 t it 文档:url
链接示例
:uri
console.log(location.pathname)
// /questions/56091860/adding-class-to-primary-nav-link-when-on-a-sub-page-based-on-the-url
在你的情况下
// /pricing/basic-pricing.html
推荐阅读
- python - 我在 python 中使用 pandas 来读取 csv,如何传递工作表名称来读取特定工作表
- javascript - 有没有办法阻止 Enter 键从另一个页面返回 json 响应?代码点火器阿贾克斯
- excel - 卸载用户窗体后,VBA Excel 出现运行时错误 91
- mysql - MySQL连接两列名称时遇到问题
- c++ - Xcode .cpp 代码使用 lambda 表达式出错
- prolog - Prolog,给定 N 并找到所有不能被 3 和 5 整除的数字,这些数字必须小于 N
- c - 循环中的 fgets 重复二维数组中的数据
- string - 努力让 Arduino Uno 上的 ESP8266 与 AT 通信可靠地工作
- svg - 如何合并两个svg文件
- python - 如何转换熊猫数据框中所有列的数据类型