2

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

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

我该如何设置,以便如果它们在此 div 中的链接为 1 个或更少,则隐藏所有(在本例中为 1 个)链接。寻找一个简单的 jquery 解决方案/

4

3 回答 3

4

假设您有很多这样的部分,您可以执行以下操作:

$('.module:not(:has("a:nth-of-type(2)"))').hide();

小提琴

  • 第n个类型
  • 不是
  • .module - 选择所有模块元素

  • a:nth-of-type(2) - 选择索引为 2 的任何锚点,即如果你有超过 1 个锚点
  • 看到一个有选择器,它现在结合了 2 个以上的表达式来选择具有锚 2 或更多的模块,但坚持
  • 包装上述 2 的非选择器确保它选择不满足上述条件的模块。

为了隐藏模块,请尝试:

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

小提琴

要不就

$('.module a').filter(function(){
    return $(this).siblings('a').length == 0;
}).hide();
于 2013-09-26T20:03:13.110 回答
3

toggle()将基于布尔值隐藏/显示,检查是否有多个锚点将评估为 true 或 false :

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

并关闭锚。

于 2013-09-26T20:05:51.867 回答
1
if ($('.sidelink').length === 1) {
    $('.module').hide();
}
于 2013-09-26T20:01:06.737 回答