jQuery list hide / show基于当前类

时间:2011-01-14 20:46:12

标签: jquery

我想显示整个ul li结构,其中包含一个类current

我想隐藏其他所有人。除了顶级。

我的jQuery没有做我想要的,有什么建议吗?

$("ul li").find("ul").hide();
$("ul:has(li.current)").parents().show();
$("ul:has(li.current)").children().show();

例如:

<ul>
    <li>Entire struct is displayed
        <ul>
            <li>1.1
                 <ul>
                     <li class="current">1.1.1</li>
                 </ul>
            </li>
            <li>1.2</li>
        </ul>
    </li>
    <li>Only this li is shown
        <ul>
            <li>2.1</li>
            <li>2.2</li>
        </ul>
    </li>
</ul>

显示为:     

            
  • 显示整个结构             
                      
    • 1.1                      
                                 
      • 1.1.1
      •                      
                      
    •                 
    • 1.2
    •             
            
  •         
  • 只显示此li
  •     

编辑:将孩子添加到jQuery,但仍未按预期工作。

1 个答案:

答案 0 :(得分:2)

以下为我工作..

$("ul").find("ul").hide();
$("ul > li.current").find("ul").show().end().parents().show();

http://jsfiddle.net/uHyPS/5/