Koken CMS Если класс добавить класс к другому элементу (несколько случаев)

Помимо разного цвета для каждого элемента навигации, когда они активны, мне нужно, чтобы у моего заголовка сайта (цвет фона логотипа) был другой цвет для каждой страницы / альбома.

Когда ссылка внутри навигации активна, .k-nav-current автоматически добавляется.

Итак, я попробовал это:

if ($("#main li:nth-child(2)").hasClass('.k-nav-current')) {
    $("#site-title").addClass("babycurrent");
} else {

};


.babycurrent{
background: rgb(35,235,0);
}

Или вместо #main li:nth-child() я пробовал:
#main a#unique_nav_itemid
a#unique_nav_itemid

Но ни одно из этих решений не работает.

1 ответ

Решение

Один метод, который вы можете использовать, чтобы проверить, существует ли элемент в документе:

if($('.k-nav-current').length) {
    $("#site-title").addClass("babycurrent");
}

конечно, если длина 0Считается "фальсией". любое другое положительное число является "правдивым".

Однако для дальнейшей помощи нам нужно увидеть фактическую разметку.

РЕДАКТИРОВАТЬ:

Для вашей текущей настройки вы пытаетесь использовать #main li:nth-child(2) и проверка его класса. Класс фактически применяется к якору. Вам нужно использовать #main li:nth-child(2) a

if ($("#main li:nth-child(2) a").hasClass('k-nav-current')) {
    $("#site-title").addClass("babycurrent");
}

Хотя может быть лучше просто использовать что-то вроде этого (учитывая, что идентификаторы уникальны):

if ($("#baby").hasClass('k-nav-current')) {
    $("#site-title").addClass("babycurrent");
}

Наконец, если вы действительно хотите, чтобы это динамично, вы можете сделать что-то вроде этого:

var current = $("a.k-nav-current")[0].id.replace('#','');
$("#site-title").addClass(current + "current");

РЕДАКТИРОВАТЬ:

$( document ).ready(function() {
  if ($("#baby").hasClass('k-nav-current')) {
    $("#site-title").addClass("babycurrent");
  }
});

// or you can do this (commented out) /*

$( document ).ready(function() {
  var current = $("a.k-nav-current")[0].id.replace('#','');
  $("#site-title").addClass(current + "current");
});

*/
Другие вопросы по тегам