2013-09-26 4 views
2

У меня есть div, у которого есть динамически загруженные ссылки.Считать и спрятать ссылки, если 1 или меньше. JQuery

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

Как я могу установить это так, что если их 1 ссылку или менее в этом DIV, чтобы скрыть все (в данном случае 1) ссылки. Ищете простое решение Jquery/

+0

точно, если это всего лишь 1 ссылка, спрячьте ссылку вправо? меньше не имеет никакого значения, поскольку скрывать нечего. – PSL

ответ

1
if ($('.sidelink').length === 1) { 
    $('.module').hide(); 
} 
4

Предполагая, что вы много таких участков можно сделать:

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

Fiddle

  • nth-of-type
  • not
  • has

  • .module - выбирает все элементы модуля

  • а: п-о-типа (2) - выбирает любой якорь с индексом 2, т.е. если у вас есть больше, что 1 якорь
  • см. селектор, теперь он объединен над 2 выражениями, чтобы выбрать модуль с якорем 2 или более, но удерживайте
  • a не селекторный обертывание вышеприведенного 2 гарантирует, что он выбирает модули, которые не удовлетворяют вышеуказанным условиям.

Симметричные скрыть модули, попробуйте:

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

Fiddle

или просто

$('.module a').filter(function(){ 
    return $(this).siblings('a').length == 0; 
}).hide(); 
+2

Красивый селектор. –

+1

приятно. И поскольку OP упоминает, что скрывает ссылку, а не весь div, вы можете сделать '$ ('. Module: not (: has (" a: nth-of-type (2) ")) a'). Hide(); ' – andi

+0

@andi я пропустил эту часть .. Спасибо :) – PSL

3

toggle() скроют/шоу на основе булева, проверяя, есть ли более чем один якорь будет оцениваться как истинный или ложный:

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

и закрыть якоря.

+0

Хороший подход тоже. –

+0

@PSL - Это прекрасно работает, OP заявляет ** «У меня есть div» **, и пока нет больше div, он отлично работает. – adeneo

+0

@adeneo oh ok, в этом случае мой ответ является излишним, возможно ... Так что верните мой комментарий ... – PSL

Смежные вопросы