Jquery 显示隐藏列表元素

Jquery 显示隐藏列表元素,jquery,Jquery,我有一个动态生成的列表,如下所示: <ul> <?php $currentYear = null; foreach($months as $m => $month){ if(is_null($currentYear) || $currentYear !== $month->year){ echo '<li id="year-'.$month->year.'"><strong>' . $month->

我有一个动态生成的列表,如下所示:

<ul>
<?php

 $currentYear = null;
 foreach($months as $m => $month){

    if(is_null($currentYear) || $currentYear !== $month->year){
        echo '<li id="year-'.$month->year.'"><strong>' . $month->year . '</strong></li>';
    }

    echo '<li class="'.$month->year.'"><a href="/news?year=' . $month->year . '&month=' . $month->month . '">' . date("M", strtotime($month->year . '-' . $month->month)) . ' (' . $month->total . ')</a></li>';

    $currentYear = $month->year;
}

?>
</ul>
这会生成HTML,如下所示:

<ul>
 <li><h2>2014</h2></li>
 <li><a href="/news?year=2014&amp;month=6">Jun (2)</a></li>
 <li><a href="/news?year=2014&amp;month=3">Mar (1)</a></li>
 <li><a href="/news?year=2014&amp;month=2">Feb (1)</a></li>
 <li><a href="/news?year=2014&amp;month=1">Jan (2)</a></li>
 <li><h2>2013</h2></li>
 <li><a href="/news?year=2013&amp;month=11">Nov (1)</a></li>
 <li><a href="/news?year=2013&amp;month=10">Oct (2)</a></li>
 <li><a href="/news?year=2013&amp;month=9">Sep (1)</a></li>
 ...
</ul>
  • 2014年
  • 2013年
  • ...
我需要列表项目(李的)被隐藏最初,在点击标题2014,说,所有属于2014年的新闻项目将显示或显示。所有标题都会出现同样的情况。

试试看

$('ul li:has(a)').hide();

$('ul li :header').click(function(){
  $(this).parent('li').nextUntil('li:has(:header)').toggle();
});

@AndrewCookson很高兴能帮助。。!你所说的
是什么意思这是一个很好的开始
,因为我不是以英语为母语的人……)我的意思是,这是一个很好的起点——对于我来说,如果我需要的话,这是一个很好的起点——尽管这是一个完整的解决方案。再次感谢。