var mygraph = document.getElementById(srcObj);
mygraph.innerHTML='BLA-BLA';
Странный DIV
Вот обнаружил непонятное поведения одного ДИВа ))
Дано: вставка жабаскриптового кода. За вставкой идет DIV
В JS-коде две функции. В одной делаю такое:
Код:
srcObj - глобальная переменная со значением 'divtrans'.
Во второй функции делаю такое:
Код:
var mydivtrans = document.getElementById('divtrans');
alert (document.getElementById('divtrans').innerHTML);
alert (document.getElementById('divtrans').innerHTML);
Сам гражданин DIV:
Код:
echo "<div id=\"divtrans\" style=\"visibility:visible;position:absolute;
z-index:99;width:100;height:100;background-color:dddddd;\"></div>"
z-index:99;width:100;height:100;background-color:dddddd;\"></div>"
Загадка: почему алерт выдает пустое значение, когда я визуально вижу в диве значение BLA-BLA?:D
ЗЫ. Тут еще обнаружил, что 7-й ослик (на других не в курсе) не позволяет делать такое и выдает ошибку:
Цитата:
myfakevariable=document.getElementById('myfakevariable');
то есть надо, чтобы идентификатор элемента и название переменной были разными. Или боян?
Добавлено:
DOM тут не при чем. Переделал так: В первой ф-ции определенное значение пристваиваю переменной А. Во всторой ф-ции читаю это значение. Но там пусто. Переменная А - глобальная. ЗЫ. Неужели тут кроется какая-то маленькая оплошность? :))
[HTML]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
</head>
<body>
<div id="divtrans" style="visibility:visible;position:absolute;z-index:99;width:100;height:100;background-color:dddddd;"></div>
<script type="text/javascript">
var srcObj = 'divtrans';
var mygraph = document.getElementById(srcObj);
mygraph.innerHTML='BLA-BLA';
var mydivtrans = document.getElementById('divtrans');
alert (document.getElementById('divtrans').innerHTML);
</script>
</body>
</html>
[/HTML]
Это работает в FF1.5, Opera 9.22 и IE6. Если JS поставить в начало страницы, то работать перестанет. Так что поведение вполне нормальное. Функции навесь на такой обработчик, который запустится после построения DOM.
Цитата: alekciy
Зря весь код не привел. Я подозреваю что дело в том, что у тебя JS код в начале страницы и ты вызываешь скрипт еще до того, как браузер построил DOM.
Нда, действительно, что-то я раньше не догадался. :D Спасибо.