darsga qaytish

Elementni tozalang

Elementdan hamma narsani olib tashlaydigan “clear(elem)” funksiyasini yarating.

<ol id="elem">
  <li>Hello</li>
  <li>World</li>
</ol>

<script>
  function clear(elem) {
    /* sizning kodingiz */
  }

  clear(elem); // ro'yxatni tozalash
</script>

Birinchidan, buni qanday qilish kerakligini ko’rib chiqamiz:

function clear(elem) {
  for (let i = 0; i < elem.childNodes.length; i++) {
    elem.childNodes[i].remove();
  }
}

Bu ishlamaydi, chunki remove() chaqiruvi elem.childNodes to‘plamini o‘zgartiradi, shuning uchun elementlar har safar 0 indeksidan boshlanadi. Lekin i ortadi va ba`zi elementlar o’tkazib yuboriladi.

for..of sikli ham xuddi shunday qiladi.

To’g’ri variant quyidagilar bo’lishi mumkin:

function clear(elem) {
  while (elem.firstChild) {
    elem.firstChild.remove();
  }
}

Bundan tashqari, xuddi shunday qilishning oddiy usuli bor:

function clear(elem) {
  elem.innerHTML = "";
}