好吧,我正在开发一个轻量级的简单下拉列表。我出现了这个小问题:
<script>
$(document).ready(function () {
$('ul li:first a').click(function () {
if ($(this).attr('class') != 'active') {
$('.hideContent').slideUp(300);
$('.showContent').removeClass('active');
$(this).addClass('active').next('ul').slideDown(300);
event.stopPropagation();
}
else {
$(this).removeClass('active');
$('.hideContent').slideUp();
}
});
});
</script>
:首先只触发第一个ul。我现在正与多个人合作:
<ul>
<li><a href="#"><span class="plus">+</span><span class="minus">-</span>Administração</a>
<ul class="hideContent">
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#"><span class="plus">+</span><span class="minus">-</span>Administração</a>
<ul class="hideContent">
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
<li><a href="#">Item</a></li>
</ul>
</li>
</ul>
:首先不应该触发EACH ul的第一个li?或者我的工作方式错了吗?
提前致谢。
答案 0 :(得分:4)
首先只匹配一个元素,请尝试使用:first-child
。
虽然这只匹配一个元素,但是:first-child可以匹配更多元素 不止一个:每个父母一个。