2016-07-28 2 views
0

Почти 3 часа тратить на это. Ничего не найдено.Добавить класс, ближайший div

Вот мой код .. 3 отдельных URL в файле. (Обновлено)

<div id="menu"> 
<a href="blue.php"> 
<div class="list"> 
Content_here 
</div> 
</a> 

<a href="yallow.php"> 
<div class="list"> 
Content_here 
</div> 
</a> 

<a href="black.php"> 
<div class="list"> 
Content_here 
</div> 
</a> 
</div> 

Добавить класс по текущему URL

<div id="menu"> 
<a href="#"> 
<div class="list active"> 
content_here 
</div> 
</a> 
</div> 

Здесь есть:

$("#menu a").each(function(index) { 
    if($.trim(this.href) == window.location) { 
     $(this).closest('div').addClass("active"); 
    } 
}); 

Нет activeclass на текущий URL. ...

ответ

1

Метод closest() используется для получения предка element.Since ДИВ находится внутри a использования children() или find() метода.

$(this).find('div').addClass("active"); 

select it based on the this context Или.

$('div', this).addClass("active"); 

Хотя для получения текущей страницы URL использовать window.location.href.

$("#menu a").each(function(index) { 
    if($.trim(this.href) == window.location.href) { 
     $('div', this).addClass("active"); 
    } 
}); 

или использовать условие, как window.location.pathname == $(this).attr('href')

+0

Я обновил мой вопрос, есть больше чем один URL в файле. – lovepeople

+0

@lovepeople Вы хотите обновить каждый url .... также измените свое условие на '$ .trim (this.href) == '#'' –

+0

@lovepeople: также измените ваше условие на '$ (this) .attr ('href') == '#' ' –

0

попробовать это:

$("[url="+window.location.origin+"]").addClass("active") 

Пожалуйста, обратите внимание, что window.location является объектом, а не строка

Смежные вопросы