Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Разница между my_id и document.getElementById('my_id') (https://javascript.ru/forum/events/34704-raznica-mezhdu-my_id-i-document-getelementbyid-%27my_id%27.html)

js_explorer 15.01.2013 19:11

Разница между my_id и document.getElementById('my_id')
 
Здравствуйте,

В чем разница между обращением
my_id
и
document.getElementById('my_id')


Чтобы лучше понять мой вопрос предлагаю просмотреть следующий код (оба примера работают):

<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	</head>
	<body>
		<!-- Пример 1 -->
		<b>Пример 1</b>
		<input id="in_text_1" type="text" value="test text 1" >
		<button onclick="out_div_1.innerHTML = in_text_1.value">test 1</button>
		<div id="out_div_1">&nbsp;</div>
		<br>
		
		<!-- Пример 2 -->
		<b>Пример 2</b>
		<input id="in_text_2" type="text" value="test text 2" >
		<button onclick="document.getElementById('out_div_2').innerHTML = document.getElementById('in_text_2').value">test 2</button>
		<div id="out_div_2">&nbsp;</div>
	</body>
<html>


Пробовал в Chrome v23, Firefox v18, Opera v12.12, IE v8 - работает везде.

Зачем использовать конструкцию:
document.getElementById('my_id').value
если можно с тем же успехом писать
my_id.value
?

Спасибо.

dmitriymar 15.01.2013 19:49

а старые версии этих браузеров?
Это иешный стандарт, ранее не был реализован в этих браузерах.

zilker 15.01.2013 20:03

1. В IE < 9 если вы захотите переопределить такую переменную - получите ошибку
2. Такие переменные глобальные

js_explorer 18.01.2013 12:54

Из ваших коментариев напрашивается вывод:
 
Короткая форма типа my_id.value:
  1. IE-шный стандарт;
  2. Теперь уже реализовано в остальных браузерах;
  3. Это глобальные переменные;

То есть теоретически это можно использовать или кроме того что не работает в IE < 8 (я не проверял, у кого есть возможность проверить отпишитесь пожалуйста) есть что-то ещё?

danik.js 18.01.2013 16:10

..
4. Это стандартизируется w3c whatwg (к моему удивлению) : http://www.whatwg.org/specs/web-apps...ndow-nameditem

ПОПРАВКА: whatwg - не w3c.

rodgenk 03.04.2013 17:47

Замучался искать ответ на такой же вопрос.
Актуальный ответ нашел только здесь.
Спасибо за ответы.

Подводя итог:
1. До IE < 8 не работает.
2. Почему не стоит использовать "глобальные переменные" написано здесь: http://javascript.ru/tutorial/founda...last-vidimosti
3. Это стандартизируется w3c whatwg http://www.whatwg.org/specs/web-apps...ndow-nameditem

Использовать можно, но осторожно.

danik.js 03.04.2013 17:53

Цитата:

Сообщение от rodgenk
1. До IE < 8 не работает.

Проверил. Работает вроде.
Цитата:

Сообщение от rodgenk
Почему не стоит использовать "глобальные переменные"

Гы, если они уже созданы браузером, то почему бы не использовать то? Но стоит помнить что могут быть конфликты.


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