Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как занести ссылку на элемент HTML (https://javascript.ru/forum/misc/9950-kak-zanesti-ssylku-na-ehlement-html.html)

Dima00782 12.06.2010 18:49

Как занести ссылку на элемент HTML
 
Здравствуйте Всем.
Есть вопрос:
Как занести в переменную ссылку на элемент HTML
link = document.getElementById('ID');

Надо чтобы эта ссылка была доступна во всём сценарии JS, то есть в функциях и так далее. Помогите у меня пока не получается.

exec 12.06.2010 18:59

Она и так доступна, если не объявлять переменую внутри замыкания.

Dima00782 12.06.2010 19:47

Почему тогда не получается так:
a = document.getElementById('ID');
alert(a.value)

??

exec 12.06.2010 19:56

Значит, у элемента нет value.

Dima00782 12.06.2010 21:43

Это input и у него точно есть значение. Сколько раз делал не выходит! Хотя так работает прекрасно работает:
a = document.getElementById('ID').value
alert(a);

Dima00782 13.06.2010 19:42

Если у кого-то такое получилось, то скиньте плиз работающий код. Кокретно для input type=text

exec 14.06.2010 08:45

<input type="text" id="inp" value="Text" />
<script type="text/javascript">
	var a = document.getElementById('inp');
	alert(a.value);
</script>


Не знаю, через какой браузер вы смотрите, но у меня на опере 10.5 всё прекрасно работает. Да и на остальных тоже должно, ошибаться-то там негде.

Dima00782 14.06.2010 09:53

....
<body onload="alert(author_link.value);">
....
	<label for="author">Имя</label>
	<input id="author" value="TEXT" type="text" class="txt" tabindex="1" size="22" name="author" />
...

// отдельный файл JS
var author_link = document.getElementById('author');

НИХРЕНА НЕ РАБОТАЕТ, ни в Опере ни в Лисе и др.
Понимаю что это воообще легкотня и основы, но почему -то упрямо не работает.

exec 14.06.2010 10:18

Когда браузер прочитал JS-файл, он ещё не "дошёл" до вашего поля и поэтому выдаёт undefined (ну или вообще Error).

Правильно будет так:

<body onload="alert(author_link().value);">
…
<input id="author" value="TEXT" type="text" class="txt" tabindex="1" size="22" name="author" />
<!--
Тут ваш файл JS. В нём пишите:
function author_link() {
return document.getElementById('author');
}
-->


Или же можно воспользоваться событием onDOMContentLoaded

Dima00782 14.06.2010 19:22

Отлично, спасибо всё работает. Я использовал onDOMContentLoaded. Но к сожалению код стал огромным :(.
P.s. пишу сам AJAX и понимаю для чего придумали jQuery. Хоть я и являюсь его ярым противником.


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