У меня возникла странная проблема при попытке навигации по строкам и ячейкам таблицы в цикле while с использованием JavaScript. Я использую Firefox 3.5.7 на Win7 с включенным Firebug.
У меня есть эта разметка:
<table>
<tbody>
<tr id='firstRow'><td>a</td><td>b</td><td>c</td></tr>
<tr><td>a</td><td>b</td><td>c</td></tr>
<tr><td>a</td><td>b</td><td>c</td></tr>
</tbody>
</table>
А это javascript:
var row = document.getElementById('firstRow');
console.log(row); // Row call 1
while (row) {
console.log(row); // Row call 2
row = row.nextSibling;
}
Проблема, с которой я сталкиваюсь, заключается в том, что в строке, прокомментированной «Строка вызова 1», Firebug выводит
<tr id='firstRow'>
как и ожидалось. Тем не менее, во время цикла, Firebug дает мне
<tr id='firstRow'>
<TextNode textContent="\n">
Это дает мне другой вывод для одной и той же строки, даже сразу после того, как цикл while начинает выполняться, и больше ничего не трогает строку. Для последующих строк он, конечно, не имеет id = 'firstRow' в качестве атрибута.
Большая проблема, которую мне это дает, заключается в том, что если я нахожусь в цикле while и хочу получить доступ к определенной ячейке текущей строки, используя row.cells [0], Firebug выдаст мне ошибку в этой строке. ячейки не определены.
Я хочу знать, может ли кто-то пролить свет на ситуацию, с которой я сталкиваюсь.