如果使用Jquery链接init具有相同的内容,则将一个活动的类添加到'li'

时间:2012-02-17 06:18:13

标签: jquery find addclass

我有这样的菜单

<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");
}

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

查看儿童()选择器:

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

来自docs

  

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

干杯

答案 2 :(得分:0)

我不确定你要做什么,但我想这是你要找的代码

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