根据HREF值切换父元素的类jQuery

Kri*_*las 3 jquery class href toggle html-lists

你可能会告诉我今天正在学习jQuery(以及其他网络内容).

当我的变量I匹配LI中的A上的HREF的内容时,我试图整齐地将LI的类更改为活动.

它的结构如下:

<li><a href="foo.html">Foo</a></li>
Run Code Online (Sandbox Code Playgroud)

当我的"page"变量等于"foo.html"时,我想将li的类更改为active.如下:

<li class="active"><a href="foo.html">Foo</a></li>
Run Code Online (Sandbox Code Playgroud)

我知道有一种适度的简单方法,但我这样做的方式似乎完全错了!

正如旁注,值得记住(因为这是我已经失败的地方),这是一个菜单,并且有很多LI,例如:

<li class="active"><a href="foo.html">Foo</a></li>
<li><a href="bar.html">Bar</a></li>
Run Code Online (Sandbox Code Playgroud)

非常感谢,克里斯

Bri*_*lta 5

这应该工作:

$('a[href="foo.html"]').closest("li").addClass("active");
Run Code Online (Sandbox Code Playgroud)

要使用页面变量:

$('a[href="' + hrefVariable + '"]').closest("li").addClass("active");
Run Code Online (Sandbox Code Playgroud)

编辑:

解释这是如何工作的:

  • 第一部分$('a [href ="foo.html"]')将找到页面上的任何和所有链接,其href值为foo.html.
  • 第二个对象.closest("li")将从第一部分中找到的元素中找到最接近的li.
  • 第三个对象将类添加到前一个元素,在本例中为li.