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.