Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Доступ к элементам страницы через js (https://javascript.ru/forum/events/3106-dostup-k-ehlementam-stranicy-cherez-js.html)

Simbax 18.03.2009 20:09

Доступ к элементам страницы через js
 
У меня такая история вышла. Когда обращаюсь к элементам страницы по ID (например someoject.innerText = "..."; ) ничего не происходит.
Не работает даже такая самая простая штуковина:
<html>

<head>
<script>
param1.innerText = "new.gif";
</script>
<title>No title</title>

</head>

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p id="param1" name="param1">dfvdfv</p>
</body>

</html>


Подскажите пожалуйста, то не так?

Gvozd 18.03.2009 20:23

innerText это DOM-метод не везде поддерживается(а может вообще и не поддерживается)
используйте innerHTML
PS большинство DOM-методов либо вообще недоступны в JS, либо только в некоторых браузерах
PPS обращатся к элементу по id лучше всего с помощью document.getElementById(id)

Simbax 18.03.2009 20:25

Большое спасибо.

Gvozd 18.03.2009 20:28

пожалуйста

Simbax 18.03.2009 20:31

Попробовал так -

<html>
 
<head>
<script>
document.getElementById('param1').innerHTML = 'Пвет!';
</script>
<title>No title</title>
 
</head>
 
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<p id="param1">dfvdfv</p>
</body>
 
</html>

Такая же хрень...

Gvozd 18.03.2009 20:35

есть еще один важный момент
порядок вызова скрипта имеет БОЛЬШОЕ значение.
в ващем примере скриптвызывается в тот момент, когда элемента document.getElementById('param1') еще нету в DOM-дереве документа, потому что скрипт посещен раньше.
выхода два:
либо разместить скрипт после всех используемых элементов
либо обернуть его в функцию, и повесить на событие загрузки страницы
window.onload=function(){document.getElementById('param1').innerHTML = 'Пвет!';}

Simbax 18.03.2009 20:36

Еще раз спасибо. :)

Gvozd 18.03.2009 20:47

Simbax,
и еще раз пожалуйста =)


Часовой пояс GMT +3, время: 10:35.