Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Объясните код (https://javascript.ru/forum/misc/39755-obyasnite-kod.html)

bgraf 10.07.2013 18:48

Объясните код
 
Здравствуйте!
Простите за подобные вопросы, но не могли бы Вы объяснить следующий код. Его я взял ища в нете вот ссылка клик
Скажите что это значит
('text')[0]

из кода
var obj = document.getElemenstByName('text')[0];
obj.onchange=t2000;
obj.onkeyup=t2000;
obj.oncut=t2000;
obj.onpaste=t2000;
obj.oninput=t2000;
obj.onkeydown=t2000;

Опишите пожалуйста!
P.S. Я понимаю что создается объект, к которому привязывают события, но не пойму почему без [0] не работает.
И еще почему если изменить getElementsByName на getElementsById тоже не работает?

danik.js 10.07.2013 19:10

document.getElementsByName('text')[0] - первый элемент имеющий name="text"
Далее на все события, связанные с изменением значения поля навешан обработчик-функция t2000

bgraf 10.07.2013 19:17

Спасибо!
А почему без [0] не работает.
И еще почему если изменить getElementsByName на getElementsById тоже не работает?

skrudjmakdak 10.07.2013 19:29

потому что getElementsById - это поиск по id. и не getElementsById, а getElementById

danik.js 10.07.2013 19:37

А еще не работает если заменить на getElementsByTagName или getElementsByClassName и даже если заменить на мамаМылаРаму то тоже не работает! Вот разработчики придурки. Сколько багов сразу, и не могли пофиксить...

bgraf 10.07.2013 19:39

Цитата:

Сообщение от skrudjmakdak (Сообщение 261656)
потому что getElementsById - это поиск по id. и не getElementsById, а getElementById

Спасибо!
Что такое getElementById я знаю, вот и вопрос почему если переделать код с getElementById, то он не работает?

bgraf 10.07.2013 19:41

Цитата:

Сообщение от danik.js (Сообщение 261658)
А еще не работает если заменить на getElementsByTagName или getElementsByClassName и даже если заменить на мамаМылаРаму то тоже не работает! Вот разработчики придурки. Сколько багов сразу, и не могли пофиксить...

Да Вы так не волнуйтесь :)
И все таки объясните:
1) почему без [0] не работает?
2)почему если изменить getElementsByName на getElementById тоже не работает?


Подскажите, я динамично создаю объект:
div.innerHTML = "<textarea cols=50 rows=5 maxlength='200' 
name='arr_product_parameter[" + obj_param_div + "]' 
id='arr_product_parameter[" + obj_param_div + "]'  
style='width:500px;border: 1px solid #a2e692; font: Arial, Verdana, Tahoma; font-size:18px; padding:0px 0px 0px 10px; outline: none;' value=\"\"></textarea>
<font id=\"counter_"+obj_param_div+"\" style='font-size:14px; font-family: Arial, Verdana, Tahoma; color: #081d05; text-decoration:none; font-weight:bold;'>Введено: 0</font>";


как мне сделать что-то подобное, как в примере выше, чтобы не вписывать вот это в textarea:
onkeypress='ch_length_text_area(\""+obj_param_div+"\")'
onchange='ch_length_text_area(\""+obj_param_div+"\")' 
onkeyup='ch_length_text_area(\""+obj_param_div+"\")' 
oncut='ch_length_text_area(\""+obj_param_div+"\")' 
onpaste='ch_length_text_area(\""+obj_param_div+"\")' 
oninput='ch_length_text_area(\""+obj_param_div+"\")' onkeydown='ch_length_text_area(\""+obj_param_div+"\")'

mta88 10.07.2013 20:20

Цитата:

И все таки объясните:
1) почему без [0] не работает?
2)почему если изменить getElementsByName на getElementById тоже не работает?
потому что волшебство
программисты создают не программы, а волшебные заклинания
все должно быть точно :)

Серджио 11.07.2013 00:33

Отобрать элемент в переменную и подключить обработчики событий

Серджио 11.07.2013 00:51

div.innerHTML = "<textarea cols=50 rows=5 maxlength='200'
	name='arr_product_parameter[" + obj_param_div + "]'
	id='arr_product_parameter[" + obj_param_div + "]' 
	style='width:500px;border: 1px solid #a2e692; font: Arial, Verdana, Tahoma; font-size:18px; padding:0px 0px 0px 10px; outline: none;' value=\"\"></textarea>
	<font id=\"counter_"+obj_param_div+"\" style='font-size:14px; font-family: Arial, Verdana, Tahoma; color: #081d05; text-decoration:none; font-weight:bold;'>Введено: </font>";


var obj = document.getElemenstByName('arr_product_parameter[" + obj_param_div + "]');

obj.onkeypress='ch_length_text_area(\""+obj_param_div+"\")';
obj.onchange='ch_length_text_area(\""+obj_param_div+"\")';
obj.onkeyup='ch_length_text_area(\""+obj_param_div+"\")';
obj.oncut='ch_length_text_area(\""+obj_param_div+"\")';
obj.onpaste='ch_length_text_area(\""+obj_param_div+"\")';
obj.oninput='ch_length_text_area(\""+obj_param_div+"\")'; 
onkeydown='ch_length_text_area(\""+obj_param_div+"\")';



ну примерно так, можно соотвественно сделать отбор элемента отобрать по 'name' а не по id, тогда использовать getElementsByTagName


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