powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Объясните пару строчек e.target.name и Array.prototype.slice.call (совсем с нуля)
2 сообщений из 2, страница 1 из 1
Объясните пару строчек e.target.name и Array.prototype.slice.call (совсем с нуля)
    #38653837
xcislav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 перепечатывали, но я не смог придумать, что сделать чтобы дописать в них для практики изменения своей программы. Порекомендуйте, может если как бы ещё можно нетривиально алгоритмически изменить данную программу, когда я пойму суть программы в итоге. Опыта изменения чужих программ нет (да и собственно своих тоже не писал).
...
Рейтинг: 0 / 0
Объясните пару строчек e.target.name и Array.prototype.slice.call (совсем с нуля)
    #38653854
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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", сравниваем со строкой "а"
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Объясните пару строчек e.target.name и Array.prototype.slice.call (совсем с нуля)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]