Recorrido jQuery - método contents()
Ejemplo
Encuentra todos los nodos de texto en los párrafos y los envuelve con etiquetas en negrita.
$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
Definición y uso
El método contents() obtiene los nodos hijos de cada elemento en la colección coincidente, incluyendo nodos de texto y de comentario.
Sintaxis
.contents()
Descripción detallada
Si se proporciona un objeto jQuery que representa una colección de elementos DOM, el método .contents() nos permite recuperar los nodos hijos directos de estos elementos en el árbol DOM y construir un nuevo objeto jQuery con los elementos coincidentes. .contents() y .children() El método es similar, pero la diferencia está en que el primero incluye nodos de texto y elementos HTML en el objeto jQuery del resultado.
El método .contents() también se puede usar para obtener el documento de contenido de iframe, siempre que el iframe esté en el mismo dominio que la página principal.
Pensando en el siguiente <div> con algunos nodos de texto, cada nodo está separado por dos elementos de salto de línea (<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 el método .contents() para convertir bloques de texto en párrafos bien formados:
$('.container').contents().filter(function() { return this.nodeType == 3; ) .wrap('<p></p>') .end() .filter('br') .remove();
Este código primero recibe el contenido de <div class="container">, luego filtra sus nodos de texto, encapsulando los nodos de texto en etiquetas de párrafo. Esto se realiza a través de la propiedad .nodeType del elemento de prueba; esta propiedad contiene un código numérico que indica el tipo de nodo; los nodos de texto utilizan el código 3. El contenido se filtrará nuevamente, esta vez para elementos <br />, que se eliminarán.