Добавьте класс, активный к 'li', если ссылка init имеет то же самое, используя Jquery - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть такое меню

<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 ]

2 голосов
/ 17 февраля 2012

Почему бы вам не найти элемент, чей класс "активный", получить его родитель и добавить класс. Это может быть так просто, как:

$("a.active").parent().addClass("active");
1 голос
/ 17 февраля 2012

Проверьте children () селектор:

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

Из документов

С учетом объекта jQuery, представляющего набор элементов DOM, метод .children () позволяет нам искать непосредственных потомков этих элементов в дереве DOM и создавать новый объект jQuery из соответствующих элементов

Приветствия

0 голосов
/ 17 февраля 2012

Я не уверен, что вы пытаетесь сделать, но я думаю, это код, который вы ищете

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