【问题标题】:Adding class to to specific href element using JavaScript使用 JavaScript 将类添加到特定的 href 元素
【发布时间】:2015-11-10 11:21:21
【问题描述】:

我正在尝试将一个类添加到菜单导航中当前 URL 的锚点以区分它。我已经研究并使用了这个 sn-p

'http://' + window.location.hostname + window.location.pathname

我能够定位我尝试选择的 URL。但是,我找不到将类添加到锚元素的确切语法。我已经尝试了这个 sn-p 的许多变体

$('[href="http://' + window.location.hostname + window.location.pathname 
+ '"]').addClass("current-menu-item");

没有任何效果。我想知道我是否遗漏了一些明显的东西,或者是否有更优雅的方法来解决这个问题。任何意见是极大的赞赏!谢谢!

【问题讨论】:

标签: javascript jquery html anchor href


【解决方案1】:

你可以这样做:

$(function() {
  $('nav a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('current-menu-item');
});

您当前的选择器过于通用,它会针对您页面中的任何链接。只需更改上面示例中的 nav a 选择器以匹配您的特定 HTML。

来自CSS-Tricks

【讨论】:

  • 目前'http://' + window.location.hostname + window.location.pathname 会生成我要定位的锚点的确切 URL。问题是使用特定 URL 向 href 添加一个类。
【解决方案2】:
var href = window.location.href.match(/[A-Za-z\_]+$/);
if(!href || !href[0] )
    return false;
$("[active='"+href+"']").addClass("active");

【讨论】:

  • 即使您的代码可能是正确的,您也应该包含注释或解释,以免显得可疑。
猜你喜欢
  • 1970-01-01
  • 2020-10-22
  • 1970-01-01
  • 2023-03-16
  • 2020-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多