|
|
|
Объясните пару строчек e.target.name и Array.prototype.slice.call (совсем с нуля)
|
|||
|---|---|---|---|
|
#18+
http://xidev.tk/frad2.php var radios=Array.prototype.slice.call(document.getElementsByName("a")); // ? каким образом тут получается массив из радио-батонов в процессе document.getElementById("pForm").onclick=function(e){ // ? e.target и имя не понятно (вместе с "а") if(e.target.name=="a") { // ищем в массиве radios элемент по которому нажали document.getElementById('xx').innerHTML=radios.indexOf(e.target); } }; <form id="pForm"> <input name="a" type="radio"/>0<br/> <input name="a" type="radio"/>1<br/> <input name="a" type="radio"/>2<br/> <input name="a" type="radio"/>3<br/> <input type="submit"/> </form> <div id="xx"></div> Понятно что делает: при нажатии radio в div попадает цифра через get..Id Не понятно почему radios массив (да и не важно, ведь я механизм не улавливаю). Операции с массивами только в нескольких программах видел (из книг перепечатывали и только путём ручного дебагинга один-итерация два-итерация понятны были). -------------- PS. программ 10 перепечатывали, но я не смог придумать, что сделать чтобы дописать в них для практики изменения своей программы. Порекомендуйте, может если как бы ещё можно нетривиально алгоритмически изменить данную программу, когда я пойму суть программы в итоге. Опыта изменения чужих программ нет (да и собственно своих тоже не писал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 19:56 |
|
||
|
Объясните пару строчек e.target.name и Array.prototype.slice.call (совсем с нуля)
|
|||
|---|---|---|---|
|
#18+
xcislavvar radios=Array.prototype.slice.call(document.getElementsByName("a")); // ? каким образом тут получается массив из радио-батонов в процессе допустим, х - массив. тогда x. slice () вернет копию массива х. в твоей строчке на месте х оказывается коллекция элементов (принцип работы call ). Т.к. в ней есть доступ к элементу по индексу и свойство length , то она считается "объектом, похожим на массив" и успешно выступает в качестве this для slice (который находится в Array.prototype) xcislav// ? e.target и имя не понятно (вместе с "а") if(e.target.name=="a") { e - объект с информацией о событии e.target - тот элемент, по которому кликнули. смотрим значение его атрибута "name", сравниваем со строкой "а" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2014, 20:32 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=99&tid=1447044]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 378ms |

| 0 / 0 |
