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/>");

Prova själv

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();

Prova själv

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.