将类活动添加到“li”中如果链接 init 具有相同的使用 Jquery

发布于 2025-01-06 11:10:48 字数 541 浏览 0 评论 0原文

我有一个像这样的菜单,

<li> <a href="/home" class="active">Home</a> </li>
<li> <a href="/service">Services</a></li>

我希望链接处于活动状态的 li 具有“活动”类。所以它会变成

<li class="active"> <a href="/home" class="active">Home</a> </li>

我认为代码可以是这样的,但还没有完全明白

var $this;
$("ul > li").each(function(){
    $this = $(this);

    if($this.find("> li a.active").length)
      $this.addClass("active");
}

Am having a menu like this

<li> <a href="/home" class="active">Home</a> </li>
<li> <a href="/service">Services</a></li>

I want the li in which the link has active have the class "active". So it will become

<li class="active"> <a href="/home" class="active">Home</a> </li>

I think code can be something like this, but not quite getting it though

var $this;
$("ul > li").each(function(){
    $this = $(this);

    if($this.find("> li a.active").length)
      $this.addClass("active");
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

远山浅 2025-01-13 11:10:48

为什么不找到类为“活动”的元素并获取其父级并添加类。这可能很简单:

$("a.active").parent().addClass("active");

Why don't you find the element whose class is "active" and get its parent and add class. This could be as simple as:

$("a.active").parent().addClass("active");
挽手叙旧 2025-01-13 11:10:48

查看 children() 选择器:

if($this.children('a.active').size())

来自 docs

给定一个代表一组 DOM 元素的 jQuery 对象,.children() 方法允许我们搜索 DOM 树中这些元素的直接子元素,并从匹配元素构造一个新的 jQuery 对象

对象

Check out the children() selector:

if($this.children('a.active').size())

From the docs

Given a jQuery object that represents a set of DOM elements, the .children() method allows us to search through the immediate children of these elements in the DOM tree and construct a new jQuery object from the matching elements

Cheers

青春有你 2025-01-13 11:10:48

我不确定你想做什么,但我想这就是你正在寻找的代码

$("ul > li").each(function(index, element){
    if($(element).find("a.active").length > 0) {
       $(element).addClass("active");
    }
}

I'm not sure what you are trying to do, but I guess this is the code you are looking for

$("ul > li").each(function(index, element){
    if($(element).find("a.active").length > 0) {
       $(element).addClass("active");
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文