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.