Показать сообщение отдельно
  #3 (permalink)  
Старый 15.01.2009, 22:48
Интересующийся
Отправить личное сообщение для Ilya Посмотреть профиль Найти все сообщения от Ilya
 
Регистрация: 09.01.2009
Сообщений: 14

mirniy,

Не каряво это свойство работает только под IE. Это связано с тем, что разные браузеры по разному определяют объекты узлов. FF, Opera, Netscape, Safari за объекты узлов (а именно текстовые узлы) также принимают пробелы и символы разрыва строки. Есть некоторые способы для этих браузеров, чтобы добиться нормального результата.

Первый способ.
Не использовать пробелы и символы разрыва строки.
То есть вместо того, чтобы писать так

<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
</head>
<body onload="alert('Дочерних узлов - ' + document.getElementsByTagName('div')[0].childNodes.length)">
<div>
<span></span>
</div>
</body>
</html>


Записать вот так

<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
</head>
<body onload="alert('Дочерних узлов - ' + document.getElementsByTagName('div')[0].childNodes.length)">
<div><span></span></div>
</body>
</html>


Второй способ.
Использовать цикл совместно со свойством nodeType. Это необходимо для проверки того, какие узлы являются элементами.

Последний раз редактировалось Ilya, 15.01.2009 в 23:04.
Ответить с цитированием