Parcours jQuery - méthode contents()
Exemple
Trouver tous les nœuds de texte dans les paragraphes et les envelopper avec des balises en gras.
$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
Définition et utilisation
La méthode contents() obtient les descendants des éléments correspondants de la collection d'éléments correspondants, y compris les nœuds de texte et de commentaire.
Syntaxe
.contents()
Explication détaillée
Si l'objet jQuery représente une collection d'éléments DOM, la méthode .contents() nous permet de récupérer les descendants directs de ces éléments dans l'arbre DOM et de construire un nouveau jQuery objet avec les éléments correspondants. .contents() et .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 de resultado.
El método .contents() también se puede usar para obtener el documento de contenido del iframe, siempre que el iframe esté en el mismo dominio que la página principal.
Pensando en el siguiente <div> que contiene 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() { devolver this.nodeType == 3; ) .wrap('<p></p>') .end() .filter('br') .remove();
Este código primero recibirá el contenido de <div class="container">, luego filtrará 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 los elementos <br />, que se eliminarán.