Metodas createElement

Metodas createElement leidžia sukurti naują elementą, perduodant parametre žymės pavadinimą. Po sukūrimo su elementu galima dirbti kaip su įprastu elementu, taip pat jį galima pridėti į puslapį metodais prepend, append, appendChild, insertBefore arba insertAdjacentElement.

Jei createElement veikimo rezultatą įrašysime į kintamąjį, tai šiame kintamajame bus toks elementas, tarsi mes jį būtume gavę per querySelector arba getElementById. Vienintelis skirtumas - mūsų elementas nebus įdėtas į puslapį. O taip mes galime keisti jo innerHTML, atributus, užkabinti įvykių apdorotojus ir galiausiai įdėti jį į puslapį.

Sintaksė

javascriptdocument.createElement('žymės pavadinimas');

Pavyzdys

Sukurkime pastraipą, nustatykime jai tekstą ir įdėkime į puslapį bloko #parent pabaigoje:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Duotas ul. Įdėkime į jį 9 li žymes, o jų tekstu padarykime eilės numerius:

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

Kodo vykdymo rezultatas:

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>

Pavyzdys

Įdedant elementus, užkabinkime prie jų įvykių apdorotojus:

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

Результат:

Taip pat žiūrėkite

  • metodas cloneNode,
    kuriuo galima klonuoti elementą
  • metodas createTextNode,
    kuriuo galima sukurti naują tekstinį mazgą