Método has() da navegação jQuery

Exemplo

Detectar se um elemento está contido em outro:

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

Experimente pessoalmente

Definição e uso

O método has() reduz o conjunto de elementos coincidentes para um subconjunto que possui descendentes que coincidem com o seletor especificado ou elemento DOM.

Sintaxe

.has(selector)
Parâmetro Descrição
selector Valor de string, contendo a expressão do seletor que coincide com os elementos.

Explicação detalhada

Se fornecido um objeto jQuery que representa uma coleção de elementos DOM, o método .has() constrói um novo objeto jQuery usando o subconjunto de elementos que correspondem.

Pense na seguinte página com lista aninhada:

<ul>
  <li>item da lista 1</li>
  <li>item da lista 2</li>
    <ul>
      <li>item da lista 2-a</li>
      <li>item da lista 2-b</li>
    </ul>
  </li>
  <li>item da lista 3</li>
  <li>item da lista 4</li>
</ul>

Podemos aplicar esse método ao conjunto de itens da lista, assim:

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

Experimente pessoalmente

O resultado dessa chamada é que o fundo do projeto 2 foi configurado como vermelho, pois esse projeto é o único que possui <ul> entre os descendentes <li>.