Javascript 如果1或更少,则计数并隐藏链接。滑动分页

Javascript 如果1或更少,则计数并隐藏链接。滑动分页,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态加载链接的div设置 <div class="module"> <a href="#" class="sidelink"> <a href="#" class="sidelink"> </div> 如何设置此选项,以便在该div中,如果他们的链接小于等于1,则隐藏所有(在本例中为1)链接。寻找一个简单的jquery解决方案/假设您有许多这样的部分,您可以做: if ($('.sidelink').length ==

我有一个动态加载链接的div设置

<div class="module">
    <a href="#" class="sidelink">
    <a href="#" class="sidelink">
</div>


如何设置此选项,以便在该div中,如果他们的链接小于等于1,则隐藏所有(在本例中为1)链接。寻找一个简单的jquery解决方案/

假设您有许多这样的部分,您可以做:

if ($('.sidelink').length === 1) {
    $('.module').hide();
}
$('.module:not(:has("a:nth-of-type(2)"))').hide();

  • .模块-选择所有模块元素

  • 类型(2)的第n个-选择索引为2的任何锚点,即如果您有多个锚点
  • 请参阅has选择器,它现在组合在2个EXPR以上,以选择具有锚定2个或更多的模块,但请按住
  • 包装上述2项的not选择器确保它选择不满足上述条件的模块
要隐藏模块,请尝试:

$('.module:not(:has(a:gt(0)))').find('a').hide();

或者只是

$('.module a').filter(function(){
    return $(this).siblings('a').length == 0;
}).hide();
toggle()
将基于布尔值隐藏/显示,检查是否有多个锚点将评估为true或false:

$('.module a').toggle($('.module a').length > 1);

然后关闭锚。

很好。由于OP提到隐藏链接,而不是整个div,因此可以执行
$('.module:not(:has(“类型(2)的第n个)a').hide()@andi我错过了那部分。。谢谢:)准确地说,如果它只是一个链接隐藏链接对吗?少并没有任何区别,因为不会有任何隐藏的东西。@PSL-这工作非常好,OP说“我有一个div”,只要没有更多div,它就工作得很好。@adeneo哦,好吧,在这种情况下,我的答案可能是杀得过火了。。。所以收回我的评论…@PSL-Nope,你的答案很好,对于所有非本机伪选择器来说可能有点慢,但是没有人会注意到这一点。另外,我的答案需要一个each()循环来完成同样的操作,但是它也可以与多个.module一起工作。我们都很好!