Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как корректно работать с getElementById ? / 3 сообщений из 3, страница 1 из 1
10.03.2008, 22:03
    #35181205
Softell
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как корректно работать с getElementById ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>TEST getID</title>
<style type="text/css">
#id1, #id2 {
  color: # 090 ;
  border: 1px solid black;
  width: 100px;
}
</style>
<script language="JavaScript" type="text/javascript">
function doGet() {
  alert("color is: "+document.getElementById("id1").style.color);
  alert("width is: "+document.getElementById("id1").style.width);
}
function doSet() {
  document.getElementById("id1").style.color = '#900';
  document.getElementById("id1").style.width =  200 ;
}
</script>
</head>

<body>
<b>
  <p id="id1" onclick="doGet();">GET</p>
  <p id="id2" onclick="doSet();">SET</p>
</b>
</body>

</html>

Имеем обычный HTML с элементами CSS. Готовый для теста.
Объясните, плз., как корректно работать с объектом документа через getElementById ?
Проблема: в теле HTML документа инициируется CSS блок, применяющий стили к элементам id=id1 и id2. При попытке обратиться через JavaScript к свойствам этих объектов (id1 как пример) получаю "null" (см. пример функция doGet(); инициируется при щелчке по тексту "GET"). Если же непосредственно через JavaScript назначить свойства объекта (функция doSet(); клик по тексту "SET"), то дальнейшее обращение к свойствам, как и предполагалось - выдает корректный результат.
Алгоритм моей проверки.
запуск HTML документа
клик по "GET" - color is: <ПУСТО> width is: <ПУСТО>
клик по "SET" (изменения ОЧЕВИДНЫЕ на форме)
клик по "GET" - color is: #900 width is: 200 (что и ожидалось в пункте 2., с соответствующими значениями).

========
- Почему так?
- Как корректно инициировать CSS в документе, чтобы не назначая свойства через JavaScript на этапе 2 уже получить данные?
...
Рейтинг: 0 / 0
11.03.2008, 00:02
    #35181350
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как корректно работать с getElementById ?
Вы лпределили стиль. но у эелемента он пуст (наследуется от CSS по ID)

В ослике есть currentStyle и runtimeStyle.

Для других браузеров код более сложный (и св-ва задаются в виде border-top not borderTop)

var dv = document.defaultView;
s = dv.getComputedStyle(document.getElementById("id1"),'');
p = s.getPropertyValue('color');
...
Рейтинг: 0 / 0
11.03.2008, 00:03
    #35181354
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как корректно работать с getElementById ?
Да, и выберите себе библиотеку поддержки.
Я использую x.js (cross-browser) - как наиболее всеядную
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как корректно работать с getElementById ? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]