jQuery-besök - contents() -metoden
Exempel
Hitta alla textnoderna i stycken och omge dem med fet stiltaggar.
$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
Definition och användning
contents() -metoden hämtar undernoderna till varje element i matchande elementkollektionen, inklusive text- och kommentarnoder.
Syntaks
.contents()
Detaljerad förklaring
Om en jQuery-objekt som representerar en samling DOM-elementer är given, tillåter .contents() -metoden oss att hämta de direkta undernoderna till dessa element i DOM-trädet och skapa en ny jQuery-objekt med matchande element. .children() Metoden liknar varandra, men den första inkluderar textknutar samt HTML-element i resultatets jQuery-objekt.
.contents() metoden kan också användas för att få innehållet i en iframe-dokument, förutsatt att iframen och huvudsidan är på samma domän.
Tänk på följande <div> med några textknutar, varje nod avskiljs av två radbrytningselement (<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>
Vi kan använda .contents() metoden för att konvertera textblock till välstrukturerade paragrafer:
$('.container').contents().filter(function() { return this.nodeType == 3; ) .wrap('<p></p>') .end() .filter('br') .remove();
Detta kodexempel tar emot innehållet i <div class="container">, filtrerar sedan dess textknutar och innesluter dem i paragrafetaggar. Detta genomförs genom att testa elementets .nodeType-attribut, som innehåller en numerisk kod som indikerar nodtypen; textknutar använder koden 3. Innehållet filtreras igen, denna gång för <br />-element, som tas bort.