jquery显示元素是否具有类和特定值的内容


jquery showing content if an element has a class and specific value

我正在创建一个导航栏,只有当元素的类为"active"并且元素的值等于字符串时,我才想在每个元素旁边包含一个图标。

http://gyazo.com/4811bc6779aaecd1fe80c020a69f1fb6.png

所以,我已经在元素旁边有了图标,我不希望它们是可见的,除非它们有一个像Home那样的活动类。我试过这个:

if($('.navbar-nav li').hasClass('active') && $('.navbar-nav li a').val() === "Home"){
    $('.navbar-nav li.active a').prepend('test ');
}

但没有奏效。我对每个元素都有不同的图标,所以我猜每种情况下都有elseif

导航标记(用PHP显示):

    <?php
      $nav = array(
     'Home' => 'index.php',
     '<span class="icon-bubbles"></span> Forums' => '#',
     '<span class="icon-cabinet"></span> Gametypes' => 'index.php?action=gamemodes',
     '<span class="icon-aid"></span> Help' => 'index.php?action=help',
     'Statistics' => 'index.php?action=statistics'
     );
    ?>
<ul class="nav navbar-nav">
    <?php
        $request = basename($_SERVER['REQUEST_URI']);
        foreach($nav as $name => $link):
    ?>
    <li <?php if($request == $link) echo 'class="active"'; ?>><a href="<?php echo $link; ?>"><?php echo $name ?></a></li>
    <?php
        endforeach;
    ?>
  <li>
    <a href="http://google.com" title="Thanks for voting!" rel="shadowbox[vote];width=1000px;"><span class="icon-pencil"></span> Minecraft Voting</a>
    <div style="display:none;">
        <a href="http://google.com" title="Thanks for voting!" rel="shadowbox[vote];width=1000px;"></a>
    </div>
  </li>
</ul>

.val()将不工作。它适用于输入类型。使用.text()

尝试:

if($('.navbar-nav li').hasClass('active') && $('.navbar-nav li a').text() === "Home"){
    $('.navbar-nav li.active a').prepend('test ');
}

试试这个:

if($('.navbar-nav li').attr(class).indexOf('active')!=-1 && $('.navbar-nav li a').val() === "Home"){
    $('.navbar-nav li.active a').prepend('test ');
}
$('.navbar-nav li.active a:contains(Home)').prepend('test ');

如果选择器与任何元素都不匹配,则不会发生任何事情。