При проверке на содержание слова стиль меню меняется везде
Имеется проверка в меню
if ($('#header .lab-menu-horizontal ul li.level-1 ul li:last-child >a').text().indexOf('All subcategory')!= -1) {
$('#header .lab-menu-horizontal ul li.level-1 ul li:last-child >a').addClass("vse_cat")
}
проблема - меняются все элементы с li:last-child >a
Пробовал добавлять $(this) - результата не получил (возможно синтаксис не тот)
Как получить смену стиля в нужном месте при условии?
структура меню после работы скрипта имеет вид
<div class="lab-menu-col col-xs-12 col-sm-2 "> <ul class="ul-column ">
.....
<li class="menu-item item-line ">
<a href="#" class="vse_cat">All subcategory</a>
</li>
</ul>
</div>
<div class="lab-menu-col col-xs-12 col-sm-4 ">
<ul class="ul-column ">
.....
<li class="menu-item item-header ">
<a href="#" class="vse_cat">Příslušenství</a> </li> </ul> </div>
где .... - n элементов
то-есть идет добавление class="vse_cat" к каждому последниму элементу меню
Ответы (1 шт):
Автор решения: Ein
→ Ссылка
.each() | jQuery API Documentation
/* Проходимся по всем найденым */
$('li:last-child >a').each(function() {
/* Проверяем подходит ли нам данный элемент */
if ($(this).text().indexOf('All subcategory') != -1) {
/* Добавляем класс, если подходит */
$(this).addClass("vse_cat");
}
});
.vse_cat {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li><a href="#">subcategory</a></li>
<li><a href="#">subcategory</a></li>
<li><a href="#">All subcategory</a></li>
<li><a href="#">All subcategory</a></li>
</ul>
<ul>
<li><a href="#">Příslušenství</a></li>
<li><a href="#">Příslušenství</a></li>
<li><a href="#">Příslušenství</a></li>
<li><a href="#">Příslušenství</a></li>
</ul>