检查<ul> <li>是否有活动链接?</li> </ul>

时间:2010-06-30 20:41:30

标签: jquery hyperlink

我有

<ul>
<li class="section-title">HEADER which triggers dropdown</li>
   <li><a href="element_one">element one</a></li>
   <li><a href="element_one">element one</a></li>
   <li><a href="element_one">element one</a></li>
</ul>

我用这一行隐藏了所有li元素(第一个除外):

$('#menu ul li.section-title:first-child').parent().children('li').hide();

我想知道是否有可能查询这三个链接中的一个是否处于活动状态,如果是这样,则不应隐藏任何内容!

甚至可能吗?谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

  1. 您的代码实际上会隐藏所有li 元素(包括第一个 一个)。
    使用$('#menu ul li:not(:first-child)').hide();隐藏除第一个之外的所有内容..
  2. 对于下一部分(只隐藏它们,如果没有当前),请使用

    var loc = window.location.href;
    var anyActive = false;
    $('#menu li a').each(function(){
        anyActive = anyActive || (this.href == loc);
    });
    
    if (!anyActive)
        $('#menu ul li:not(:first-child)').hide();
    
  3. 在评论后使用工作代码进行更新

    var loc = window.location.href;
    
    $('#menu li a').each(function(){
        if (this.href == loc)
            $(this).addClass('activelink');
    });
    
    $('#menu ul:not(:has(.activelink)) li:not(:first-child)').hide();
    

    直播示例:http://jsfiddle.net/gaby/SMmtS/21/

答案 1 :(得分:0)

为什么不将类附加到活动链接,然后你可以执行以下操作:

$(document).ready(function() { $(".myClass").doSomething();});