【问题标题】:Add a class to a-tag with specific ID-link将类添加到具有特定 ID-link 的 a-tag
【发布时间】:2013-10-31 08:24:24
【问题描述】:

我正在尝试将 CSS 类“活动”添加到具有包含当前在 URL 中活动的 ID 的 href 属性的锚标记。到目前为止,这是我的代码,但我无法让 window.location.hash 工作。

$( "a[href="window.location.hash"]" ).addClass('active');

我需要你的帮助!

此外,如果“window.location.hash”发生变化,我必须删除该类!我忘记了:(

【问题讨论】:

  • 为什么不在锚标签中添加一个类。然后你可以选择类并添加类'active'。
  • 我喜欢让我的标记尽可能简单,所以如果我不需要添加额外的标记,我会尽量避免它。

标签: jquery css class add


【解决方案1】:

用以下代码替换您的代码。所有活动的类都将被删除,具有当前 url 的 href 将处于活动状态。

$('.active').removeClass('active');
$( "a[href='" + window.location + "']" ).addClass('active');

如果您想从特定部分中删除活动类,请使用类层次结构,例如

$('.xyz .active').removeClass('active');

【讨论】:

  • 我添加了我的 .hash 并且它起作用了 :) 谢谢你 kundan!但是如果 window.location.hash 发生变化,我需要删除这个类。我忘了在我的问题中提到这一点,抱歉。
【解决方案2】:

听起来你只是想使用 :target 伪类(不需要 javascript)。你可以在这里阅读 - http://css-tricks.com/on-target/

【讨论】:

  • 我确实使用 :target 通过单击 ID 为 #popular 和 #latest 的 a-tag 在两个 uls 之间切换。但是 A 标记位于 uls 上方的 nav 元素中(不在其中)。这就是为什么我不能用我的 :target 伪类引用这些 A 标记来激活它们。
【解决方案3】:

试试这个

$( "a[href='\\#ID']" ).addClass('active');

$("a[href='"+window.location.hash+"']" ).addClass('active');

【讨论】:

  • 我用你的第二个solotuion。也谢谢你,但我也再次删除了这个类。
猜你喜欢
  • 2015-11-08
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2020-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多