jQuery przechodzenie - metoda has()

Przykład

Sprawdzenie, czy jeden element znajduje się w innym elemencie:

$("ul").append("<li>" + ($("ul").has("li").length ? "Tak" : "Nie") + "</li>");
$("ul").has("li").addClass("full");

Spróbuj sam

Definicja i użycie

has() redukuje zbiór elementów pasujących do podzbioru mającego potomków pasujących do określonego wyrażenia wyboru lub elementu DOM.

Gramatyka

.has(selector)
Parametry Opis
selector Wartość ciągła, zawierająca wyrażenie wyboru elementów pasujących.

Szczegółowe wyjaśnienie

Jeśli podany obiekt jQuery reprezentuje zestaw elementów DOM, metoda .has() tworzy nowy obiekt jQuery z podzbiorem elementów potomnych, które pasują do podanego wyrażenia wyboru. Wyrażenie wyboru jest używane do wykrywania potomków elementów pasujących; jeśli któryś element potomek pasuje do tego wyrażenia, ten element zostanie zawarty w wyniku.

Pomyśl o poniższej stronie z wciętej listą:

<ul>
  <li>element listy 1</li>
  <li>element listy 2</li>
    <ul>
      <li>element listy 2-a</li>
      <li>element listy 2-b</li>
    </ul>
  </li>
  <li>element listy 3</li>
  <li>element listy 4</li>
</ul>

Możemy zastosować tę metodę do zbioru elementów listy, tak jak tutaj:

$('li').has('ul').css('background-color', 'red');

Spróbuj sam

Wynik tego wywołania to, że tło elementu 2 ustawione jest na czerwone, ponieważ jest to jedyny element potomka posiadający <ul> <li>.