A createElement metódus

A createElement metódus lehetővé teszi egy új elem létrehozását a tag nevének paraméterben történő átadásával. A létrehozás után az elemmel a szokásos módon dolgozhatunk, és oldalra is helyezhetjük a prepend, append, appendChild, insertBefore vagy insertAdjacentElement metódusok segítségével.

Ha a createElement metódus eredményét egy változóba mentjük, akkor ez a változó olyan elemet fog tartalmazni, mintha a querySelector vagy getElementById metódusokkal kaptuk volna meg. Az egyetlen különbség - az elemünk nem lesz elhelyezve az oldalon. De módosíthatjuk az innerHTML tulajdonságát, attribútumait, felhelyezhetünk rá eseménykezelőket, és végül elhelyezhetjük az oldalon.

Szintaxis

javascriptdocument.createElement('tag neve');

Példa

Hozzunk létre egy bekezdést, állítsuk be a szövegét és helyezzük az oldalra a #parent blokk végére:

html<div id="parent">
  <p>1</p>
  <p>2</p>
  <p>3</p>
</div>
javascriptlet parent = document.querySelector('#parent');

let p = document.createElement('p');
p.textContent = '!';

parent.appendChild(p);

A kód végrehajtásának eredménye:

html<div id="parent">
  <p>1</p>
  <p>2</p>
  <p>3</p>
  <p>!</p>
</div>

Példa

Adott egy ul. Helyezzünk el benne 9 db li tag-et, és a szövegüket tegyük egyenlővé a sorszámukkal:

html<ul id="parent"></ul>
javascriptlet parent = document.querySelector('#parent');

for (let i = 1; i <= 9; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  parent.appendChild(li);
}

A kód végrehajtásának eredménye:

html<ul id="parent">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
</ul>

Példa

Helyezzünk fel eseménykezelőket az elemek beszúrásakor:

html<ul id="parent"></ul>
javascriptlet parent = document.querySelector('#parent');

for (let i = 1; i <= 9; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  
  li.addEventListener('click', function() {
    alert(this.textContent);
  });
  
  parent.appendChild(li);
};

Результат:

Lásd még

  • a cloneNode metódus,
    amellyel egy elem klónozható
  • a createTextNode metódus,
    amellyel egy új szöveges csomópont hozható létre