5. Фільтри змісту та видимості

Фільтри використовуються для того щоб відібрати елементи, які мають в собі певний зміст, або є пустими, або мають певні вкладені елементи,а також видиміелементи за умовчанням або такі для яких в стилях прописані властивості visibility: visible (фільтр :visible); а також невидимі елементи для яких в стилях приписано display:none або type:hidden (фільт :hidden). Елементи з властивістю visibility:hidden та opacity:0 за допомогою фільтру :hidden не вибираються.

:contains("текст") - вибір по змісту (текст), у якості тексту можуть бути слова, частини слів, одна або кілька літер, що йдуть підряд чи стоять окремо
:empty - вибір пустих елементів в середені яких немає нічого іншого, навіть пробілів
:has(tag) - вибір елементів в всередені яких є відповідні елементи не тільки на першому рівні
:hidden - вибір схованих елементів для яких в стилях прописано display:none
:visible - вибір видимих елементів, видимість задається в стилях visibility: visible або вона діє за умовчанням, якщо не вказано інше

Приклади

:contains("текст") - вибір по змісту (текст), у якості тексту можуть бути слова частини, слів одна або кілька літер, що йдуть підряд чи стоять окремо

Фраза
Раз
р аз
раз
Фраза
Раз
р аз
раз

:contains("раз")
Виберуться тільки перший і останній блоки. У другому блоці невідповідний регістр, у третьому розрив після літери "р".
 $('#btncont').click(function (){
 	$('.dv3 div:contains("раз")').css("border","3px solid red");});
 });
Код кнопки


:empty - вибір пустих елементів в середені яких немає нічого іншого, навіть пробілів

1
1

:contains("раз")
Виберуться тільки третій і четвертий блоки. У другому блоці є пробіл.
  $('#btnempty').click(function (){
 	    $('.dv5 div:empty').css("border","3px solid red");
  });
Код кнопки


:has(tag)- вибір елементів в всередені яких є відповідні елементи не тільки на першому рівні

1
span
1
span

:has("span")
Перший блок має вкладений блок и вже в ньому елемент span. Тому обидва блоки - і батьківський, і дочірній будут обрані. Третій блок не вибереться - у ньому слово "span", а не тег.
  $('#btnhas').click(function (){
  	   $('.dv6 div:has("span")').css("border","3px solid red");
  });
Код кнопки


:hidden - вибір схованих елементів для яких в стилях прописано display:none
:visible - вибір видимих елементів
За допомогою фільтру :hidden можна вибрати лише ті елементи, які не займають місце в документі, тобто мають властивість
display:none;
/*або*/ 
type:hidden;
Елементи з властивостями visibility:hidden та opacity:0 за допомогою фільтру :hidden вибрати не можна.
visibility:hidden;
/*або*/  
opacity:0;
1
/*display:none*/
2
3
/*display:none*/
4
Перший і третій блок - hidden, їм встановлено display:none;
1
2
3
4

:hidden обираємо блоки 1 та 3, які сховані та показуємо їх за 1 секунду (1000 мсек)
:visible обираємо видимі блоки, та ховаємо їх. Після цього знову можемо вибрати сховані блоки і показати їх (перша кнопка)

Якщо блоки сховати, встановивши їм властивість visibility: hidden; то обрати і показати їх не вийде (перша кнопка не буде працювати)

// показуємо сховані
$('#btnh1').click(function (){
	$( "div:hidden" ).show(1000);
 });
// ховаємо, встановивши display:none
$('#btnv1').click(function (){
	$('.div7 div:visible').css("display","none");
});
// ховаємо, встановивши visibility:hidden
$('#btnv2').click(function (){
	$('.div7 div:visible').css("visibility","hidden");
});
  
Код кнопок




далі ✏
Ігор Ка