Navegação jQuery - método contents()

Exemplo

Encontra todos os nós de texto dentro do parágrafo e os envolve com a tag em negrito.

$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");

Experimente você mesmo

Definição e uso

O método contents() obtém os nós filhos de cada elemento correspondente na coleção de elementos correspondentes, incluindo nós de texto e de comentário.

Sintaxe

.contents()

Explicação detalhada

Se fornecido um objeto jQuery que representa uma coleção de elementos DOM, o método .contents() nos permite recuperar os nós filhos diretos desses elementos no árvore DOM e construir um novo objeto jQuery com os elementos correspondentes. O .contents() e .children() O método é semelhante, mas a diferença é que o primeiro inclui nós de texto e elementos HTML no objeto jQuery de resultado.

O método .contents() também pode ser usado para obter o documento de conteúdo do iframe, desde que o iframe e a página principal estejam no mesmo domínio.

Pense na seguinte <div> com alguns nós de texto, cada nó sendo separado por dois elementos de quebra de linha (<br>):

<div class="container">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed 
  do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
  <br /><br />
  Ut enim ad minim veniam, quis nostrud exercitation ullamco 
  laboris nisi ut aliquip ex ea commodo consequat.
  <br /> <br />
  Duis aute irure dolor in reprehenderit in voluptate velit 
  esse cillum dolore eu fugiat nulla pariatur.
</div>

Podemos usar o método .contents() para transformar um bloco de texto em um parágrafo bem formatado:

$('.container').contents().filter(function() {
  return this.nodeType == 3;
)
  .wrap('<p></p>')
.end()
.filter('br')
  .remove();

Experimente você mesmo

Este código primeiro recebe o conteúdo de <div class="container">, então filtra seus nós de texto, encapsulando os nós de texto em etiquetas de parágrafo. Isso é implementado através do teste do atributo .nodeType do elemento. Este atributo contém um código numérico que indica o tipo de nó; os nós de texto usam o código 3. O conteúdo será filtrado novamente, desta vez para <br />, que serão removidos.