не правильное использование DOM HTML или глюки FireFox 1.0.4?

KR

alive in new life
не правильное использование DOM HTML или глюки FireFox 1.0.4?

Объясните пожалуйста, странный результат в браузере FireFox 1.0.4 Windows.

PHP:
<html>
<head>
<script type="text/javascript">
function test()
{
	var v1 = document.getElementById('id_1');
	alert(v1.childNodes[0].innerHTML);
	var v2 = document.getElementById('id_2');
	alert(v2.childNodes[0].innerHTML);
}
</script>
</head>
<body onload="test();">
<table border="1">
<tbody>
<tr id="id_1">
	<td>col1</td>
	<td>col2</td>
</tr>
</tbody>
</table>

<table border="1">
<tbody>
<tr id="id_2"><td>col1</td><td>col1</td></tr>
</tbody>
</table>
</body>
</html>
никак не могу понять почему в первом случае алерт выводит undefined.

В IE & Opera все ок.
 

Frol

Новичок
1. alert(v1.childNodes[0].nodeType);
2. удивляемся
3. и наконец понимаем почему

PS в мозилле есть DOM Inspector.
 

KR

alive in new life
Вот с третьим пунктом, к сожалению, проблемы возникли.

Да, в мозилле есть DOM инспектор и в него заглядывал, но так и не понял почему переход на новую строку тоже интерпретируется фаервоксом как DOM элемент.

К слову, и IE и Опера и на alert(v1.childNodes[0].nodeType), и на alert(v2.childNodes[0].nodeType) выводят "1", что на мой взгляд логично.

И если опять начинается колбаса с разной интерпретацией браузерами, то как тогда получить объект первой строки таблицы, чтобы это работало во всех браузерах?

P.S. С DOM столкнулся не очень давно, поэтому очевидные вещи для меня еще не совсем очевидны. Не могли бы Вы отвечать, если отвечаете, в стиле "для чайников"?.
Вполне достаточно будет ссылки на различные маны.

Спасибо.
 

slach

Новичок
гляди такой код

var v1 = document.getElementById('id_1');
trList= v1.getElementsByTagName('tr');
for (i=0;i<trList.length;i++) {
tdList = trList.getElementsByTagName('td');
for (j=0;j<tdList.length;j++) {
alert('trList['+i+'] tdList['+j+'].innerHTML='+tdList[j].innerHTML);
}
}
 

KR

alive in new life
Спасибо, slach, идея хорошая. попробую до ума довести.
 

Frol

Новичок
Да, в мозилле есть DOM инспектор и в него заглядывал, но так и не понял почему переход на новую строку тоже интерпретируется фаервоксом как DOM элемент.
а чем перевод строки отличается от буквы "а"?
 

KR

alive in new life
Автор оригинала: Frol
а чем перевод строки отличается от буквы "а"?
Тем, что это пробельный символ, а стандарты html никто не отменял.

P.S. В общем вопрос уже давно решен, спасибо slach. Тему можно считать закрытой.
Выводы насчет неумения пользоватья DOM сделаны.
 
Сверху