Имея некоторые проблемы с методами JQuery - возможно усложнять вещи ...Найти, если текущий класс содержит слово, а затем добавить новый класс для тех Ли - JQuery
Что мне нужно найти, если какие-либо из классов Li элементов содержит слово «текущий», тогда, если они это сделают, добавьте к ним слово «активный».
Я изо всех сил пытаюсь добавить слово в конец текущего класса. Например:
Markup:
<div class="menu-navigation-container">
<ul>
<li class="current_page_item menu-item-8787"><a href="http://www.cornermag.com/mag/" style="font-size: 1.6rem;"><span>The Magazine</span></a>
</li>
<li class="menu-item menu-item-type-post_type"><a href="http://www.cornermag.com/snapped/" style="font-size: 1.6rem;"><span>Snapped</span></a>
</li>
</ul>
</div>
JQuery:
$(document).ready(function() {
var classNames = $('.menu-navigation-container ul li').attr("class").match(/[\w-]*current[\w-]*/g);
$(classNames).each(function() {
$(this).addClass("active");
});
});
Запуск classnames;
в консоли производит только строку - Я хочу, чтобы ссылаться на Li elemens, которые имеют слово «current» в своих именах классов, затем добавьте слово «активный» в конце.
Могу ли я сделать это с помощью jQuery's attribute contains selector?
Что случилось с выходом прямо к нему с селектором? например '.menu-navigation-container ul li [class * =" current "]' –
Почему вы не проверяете конкретный класс вместо 'current_page_item' ??? –
В вашем матче найдены все строки, которые имеют 'current'. Почему теперь не проходят через те же элементы снова, и если они имеют данный класс, добавьте активный. – eithed