Método has() de Navegación de jQuery

Ejemplo

Detectar si un elemento está dentro de otro elemento:

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

Prueba personalmente

Definición y uso

has() reduce la colección de elementos coincidentes a un subconjunto que posee descendientes que coinciden con el selector especificado o con el elemento DOM.

Sintaxis

.has(selector)
Parámetros Descripción
selector Valor de cadena que contiene la expresión del selector que coincide con los elementos.

Explicación detallada

Si se proporciona un objeto jQuery que representa una colección de elementos DOM, el método .has() construye un nuevo objeto jQuery utilizando un subconjunto de elementos que coinciden con el subconjunto de elementos hijos del elemento coincidente; el selector utilizado se aplica para detectar los descendientes que coinciden con el selector; si cualquier elemento descendiente coincide con el selector, ese elemento se incluirá en el resultado.

Piensa en la siguiente página con lista anidada:

<ul>
  <li>elemento de lista 1</li>
  <li>elemento de lista 2</li>
    <ul>
      <li>elemento de lista 2-a</li>
      <li>elemento de lista 2-b</li>
    </ul>
  </li>
  <li>elemento de lista 3</li>
  <li>elemento de lista 4</li>
</ul>

Podemos aplicar este método a la colección de elementos de lista, como así:

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

Prueba personalmente

El resultado de esta llamada es que el fondo del proyecto 2 se establece en rojo, ya que este proyecto es el único <li> que posee <ul> entre los descendientes.