Jquery сопоставляет текст ссылки с переменной и добавляет класс

Кто-нибудь может увидеть, где мой мозг пердит на этом? первая часть работает отлично (установите активную навигацию на страницах основных категорий), но во второй части (установите активную навигацию на страницах статей) элементы, кажется, совпадают без проблем, но класс не добавляется. на этих страницах мне нужно, чтобы основные элементы навигации были активными, если они совпадают со ссылками на категории, использованными в статье.

      /* Set active nav on main category pages */
      var currentPath = window.location.pathname,
          currentFilter = window.location.search,
          currentUrl = currentPath + currentFilter;
      //alert("currentUrl: " + currentUrl);
      $('#main-navigation li a[href="'+currentUrl+'"]').parent('li').addClass('active-link');


      /* Set active nav/s on library article pages (match ALL categories) */
      $('.view-item article .categories a').each(function(){
        var currentCategory = $(this).text();
        //alert("currentCategory: " + currentCategory);
        $('#main-navigation li a:contains("'+currentCategory+'")').parent('li').addClass('active-link'); 
      });

person VUELA    schedule 13.03.2014    source источник


Ответы (1)


Хорошо, я НАКОНЕЦ-ТО заставил это работать!!!

это работает, когда я использую имя класса основной навигации вместо идентификатора, например:

$(".main-nav li a:contains('"+currentCategory+"')").parent("li").addClass("active-link");

вместо этого:

$("#main-navigation li a:contains('"+currentCategory+"')").parent("li").addClass("active-link");
person VUELA    schedule 14.03.2014
comment
хорошо - похоже, причина этого заключалась в том, что шаблон CMS, который я использую для основы этого сайта, имеет два элемента в html с именем #main-navigation .... только один фактически используется на основе параметров, выбранных при используя шаблон, но поскольку на самом деле в html есть 2 элемента #main-navigation, которые обнаруживаются при запуске скрипта с этим идентификатором, он не будет работать, поэтому вместо этого вам нужно использовать имя класса. - person VUELA; 14.03.2014