我正在建立一个按不同类别分类的简报档案。标记看起来像这样:
<h4>Category 1</h4>
<ul>
<li><a href="../Newsletter1" target="_blank" class="button_sharp left">Newsletter 1</a></li>
<li><a href="../Newsletter2" target="_blank" class="button_sharp left">Newsletter 2</a></li>
<li><a href="../Newsletter3" target="_blank" class="button_sharp left">Newsletter 3</a></li>
</ul>
<h4>Category 2</h4>
<ul>
<li><a href="../Newsletter1" target="_blank" class="button_sharp left">Newsletter 1</a></li>
<li><a href="../Newsletter2" target="_blank" class="button_sharp left">Newsletter 2</a></li>
<li><a href="../Newsletter3" target="_blank" class="button_sharp left">Newsletter 3</a></li>
</ul>
现在会有很多类别和简报,所以我希望在用户点击类别h4
之前隐藏新闻简报。并在再次点击时再次隐藏。
我试过这个功能:
<script type="text/javascript">
$('h4').click(function() {
$(this).find('ul').toggle();
});
</script>
我想这不起作用,因为我必须将h4
包裹在ul
中,但这会导致错误。有什么建议吗?
答案 0 :(得分:2)
你需要使用jQuery .next函数,所以它会在每个h4标签之后寻找下一个<ul>
类,这里是一个快速演示演示:
(function( $ ) {
$('h4').click(function() {
$(this).next('ul').toggle();
});
}).apply( this, [ jQuery ]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h4>Category 1</h4>
<ul>
<li><a href="../Newsletter1" target="_blank" class="button_sharp left">Newsletter 1</a></li>
<li><a href="../Newsletter2" target="_blank" class="button_sharp left">Newsletter 2</a></li>
<li><a href="../Newsletter3" target="_blank" class="button_sharp left">Newsletter 3</a></li>
</ul>
<h4>Category 2</h4>
<ul>
<li><a href="../Newsletter1" target="_blank" class="button_sharp left">Newsletter 1</a></li>
<li><a href="../Newsletter2" target="_blank" class="button_sharp left">Newsletter 2</a></li>
<li><a href="../Newsletter3" target="_blank" class="button_sharp left">Newsletter 3</a></li>
</ul>
并且a Jsfiddle demo