Jquery选择一个类后又一个?

xbp102n0  于 2023-06-22  发布在  jQuery
关注(0)|答案(1)|浏览(93)

我的代码:http://codepen.io/vincentccw/pen/jquJs

<ul id="menuDots">
    <li id="about1"><a href="#"><img class="bulletRoll" src="images/menu-dot.png" /><img src="images/menu-dot-rollover.png" /></a></li>
    <li id="about2"><a href="#"><img class="bulletRoll" src="images/menu-dot.png" /><img src="images/menu-dot-rollover.png" /></a></li>
    <li id="about3"><a href="#"><img class="bulletRoll" src="images/menu-dot.png" /><img src="images/menu-dot-rollover.png" /></a></li>
</ul>

<div class="btn">next btn</div>

现在我的按钮已经设置好了

$('.btn').click(function(){
    $('#menuDots li a img.bulletRoll').css({"display":"none"});
});

问题是我有3组按钮,但在不同的层次结构中,

第一个按钮-$('#menuDots li a img.bulletRoll'),位于li的第一个子元素内
第二个按钮-$('#menuDots li a img.bulletRoll'),位于li的第二个子元素内
第三个按钮-$('#menuDots li a img.bulletRoll'),位于li的第三个子元素内
如何将display:none仅设置为第一个.bulletRoll,然后第二次单击将显示无设置为下一个.bulletRoll?我已经尝试使用next(),但似乎不工作?

iq3niunx

iq3niunx1#

您可以选择第一个仍然可见的.bulletRoll元素:

$('.btn').click(function(){
    $('#menuDots li a img.bulletRoll').filter(':visible').first().css({"display":"none"});
});

演示:http://codepen.io/anon/pen/nqJaI
你也可以使用.hide()来代替.css({"display":"none"})
我也不推荐使用div元素作为“按钮”,因为用户不能通过键盘访问它,所以你的页面对于那些不能(或只是选择不)使用鼠标或其他定点设备的人来说是不可访问的。使用锚元素或按钮代替。

相关问题