Я пытаюсь настроить навигацию с помощью Wordpress, и мне сложно передать выбранный класс, соответствующий заголовку страницы, на ссылку, созданную для меня wp. Как я могу ссылаться на конкретную ссылку $(this)
и добавить класс?addClass 'selected' to link, которая соответствует названию страницы
<div class="container menu_nav">
<ul class="grid_12">
<?php
$args = array('menu' => 'main-menu', 'echo' => false);
$navMenu = wp_nav_menu($args);
$pageTitle = get_the_title();
echo '<span id="page_title">'.$pageTitle.'</span>';
$stripTags = strip_tags($navMenu, '<li><a>');
echo $stripTags;
?>
</ul>
</div>
jQuery(document).ready(function($){
var nav = '.menu_nav ul li a';
var linkTitle = $(nav).attr('title');
var arr = [];
var pageTitle = document.getElementById('page_title');
var pageAttr = pageTitle.innerHTML;
var linkClass = document.getElementsByClassName("menu-item");
$(nav).each(function() {
arr.push($(this).text())
});
for (var i = 0; i < arr.length; i++) {
if (arr[i] == pageAttr) {
$(linkClass).addClass('selected');
} else {
$(linkClass).removeClass('selected');
}
}
console.log(arr.join());
console.log(linkTitle,pageAttr);
});
Просьба разъяснить вашу проблему. Неясно – dpanshu
Привет, Рори, если вы проверите цикл for прямо сейчас, я передаю addClass и removeClass на каждую ссылку навигации, когда он найдет заголовок страницы, соответствующий названию ссылки. Как добавить addClass и removeClass в отдельный элемент li, а не все элементы li одновременно. Я также изменил свой массив, что теперь он получает все названия ссылок в нем: $ (nav) .each (function() { \t \t arr.push ($ (this) .attr ('title')); \t}); –