Я просто пишу некоторый код для обхода DOM для таблицы, и я получил сюрприз.DOM (по крайней мере, в FF) - это не то, что я ожидал.FF вставил tbody
и различные текстовые узлы, которые просто содержат "\ n".Исходный HTML-код:
<table>
<tr>
<th></th><th>Jan</th><th>Feb</th><th>Mar</th><th>Apr</th><th>May</th><th>Jun</th><th>Jul</th><th>Aug</th><th>Sep</th><th>Oct</th><th>Nov</th><th>Dec</th>
</tr>
<tr><th>2010</th>
<td id='tdid0'>53</td> <td id='tdid1'>249</td> <td id='tdid2'>1689</td> <td id='tdid3'>22753</td>
<td id='tdid4'>23051</td><td id='tdid5'>23633</td><td id='tdid6'>23923</td> <td id='tdid7'>23306</td>
<td id='tdid8'>23943</td><td id='tdid9'>24196</td><td id='tdid10'>24440</td><td id='tdid11'>24156</td>
</tr>
<tr><th>2011</th>
<td id='tdid12'>24262</td><td id='tdid13'>22554</td><td id='tdid14'>25507</td><td id='tdid15'>23144</td>
<td id='tdid16'>24354</td><td id='tdid17'>24610</td><td id='tdid18'>24870</td><td id='tdid19'>24424</td>
<td id='tdid20'>24698</td><td id='tdid21'>22640</td><td></td><td></td></tr>
</table>
1 - FF вставил tbody
в качестве первого потомка table
, поэтому мне нужно подняться на 3 уровня (от td
), чтобы найтиtable
, а не 2
2 - HTML-представление в Firebug показывает 3 строки, как и ожидалось, где строки 2 и 3 имеют th
, за которыми следуют 12 td
с.Однако при пошаговом прохождении получается, что у tbody
есть 6 дочерних элементов с текстовым узлом NL после каждой строки
3 - Firebug утверждает, что в каждой строке 13 дочерних элементов, как и ожидалось (заголовоки 12 элементов данных).однако при переходе по дочерним элементам с nextSibling
оказывается, что ожидаемые элементы th
и td
фактически разделены текстовыми узлами, содержащими WS.Есть идеи, что происходит?Может ли браузер делать то, что хочет?Спасибо.