darsga qaytish

Nima uchun "aaa" qoladi?

Quyidagi misolda table.remove() chaqiruvi jadvalni hujjatdan olib tashlaydi.

Agar siz uni ishga tushirsangiz, "aaa" matni hali ham ko’rinib turishini ko’rishingiz mumkin.

Nega bunday bo’ladi?

<table id="table">
  aaa
  <tr>
    <td>Test</td>
  </tr>
</table>

<script>
  alert(table); // stol, xuddi shunday bo'lishi kerak

  table.remove();
  // nega hujjatda hali ham aaa bor?
</script>

Vazifadagi HTML noto’g’ri. Bu g’alati narsaning sababi.

Brauzer uni avtomatik ravishda tuzatishi kerak. Lekin <table> ichida matn bo’lmasligi mumkin: spetsifikatsiyaga ko’ra faqat jadvalga xos teglarga ruxsat beriladi. Shunday qilib, brauzer <table> dan * oldin "aaa" ni ko’rsatadi.

Endi stolni olib tashlaganimizda, u qolishi aniq.

Savolga brauzer vositalaridan foydalangan holda DOMni o’rganish orqali osongina javob berish mumkin. Siz <table> oldidan aaa ni ko`rasiz.

HTML standarti yomon HTMLni qanday qayta ishlashni batafsil belgilaydi va brauzerning bunday xatti-harakati to’g’ri.