我只寫了一些代碼來遍歷表格的DOM,並且我得到了一個驚喜。 DOM(至少在FF中)並不是我所期望的。 FF已插入一個tbody
和各種文本節點,其中只包含一個「\ n」。 HTML源代碼是:HTML表格的DOM表示
<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 - 如預期的那樣,Firebug中的html視圖顯示3行,其中第2行和第3行有th
,後面跟着12 td
s。但是,單步執行時,結果發現tbody
有6個孩子,每行後面有一個NL文本節點。
3 - Firebug聲稱每行有13個孩子,如預期的那樣(頭部和12個數據項)。當通過nextSibling
步進孩子時,事實證明預期的th
和td
元素實際上是由包含WS的文本節點分隔的。 任何想法發生了什麼?瀏覽器基本上可以做它想做的事情嗎?謝謝。
事實證明,最糟糕的情況是「web開發者」可以做他們想做的事情。 – kapa 2011-12-21 17:28:45