addClass'选择'到与页面标题匹配的链接

时间:2015-08-07 13:53:02

标签: jquery addclass

我正在尝试使用wordpress设置导航,但我很难通过“已选择的”#39;将页面标题与wp为我生成的链接匹配的类。如何引用特定的$(this)链接并添加课程?

<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);
});

2 个答案:

答案 0 :(得分:1)

您必须在一个循环中执行此操作

$(nav).each(function() {
         arr.push($(this).text()) ;
         if ($(this).text() == pageAttr) {
                 $(this).addCass('selected');
            }
}); 

答案 1 :(得分:-1)

每当你在arr中找到与你的页面标题不匹配的条目并在你找到一个元素时将它添加到每个元素时,你就会从linkClass中返回的每个元素中删除“selected”类。

尝试以下方法:

jQuery(document).ready(function($){
    var nav=$('.menu_nav ul li a');
    var pageTitle = $('page_title').text();

    nav.removeClass('selected');
    nav.each(function(item) {
        if ($(item).text().toLowerCase() === pageTitle.toLowerCase())
            $(item).addClass('selected');
    });
});