Kotorkovsciy
@Kotorkovsciy

В чём ошибка в коде?

Имеется страничка HTML. В ней код
<!DOCTYPE html>
<html>
   <head>
      <title>Page Title</title>
   </head>
   <body>
      <span id="letter-0">П</span>
      <span id="letter-1">р</span>
      <span id="letter-2">и</span>
      <span id="letter-3">в</span>
      <span id="letter-4">е</span>
      <span id="letter-5">т</span>
      <input/>
   </body>
</html>

Код на JS
var i = 0,
	s = [],
	a = document.getElementsByTagName('input')[0];

while (true) {
	var id = 'letter-' + i;
	let el = document.getElementById(id);
	if (el == null) {
		break;
	} else {
		el = document.getElementById(id).innerHTML;
		s.push(el);
	}
	i++;

}
for (
	w = [],
	t = '',
	j = 0; i < s.length; i++
)
	s[i].hasAttribute('unselectable') && w.push(s[i]);
for (var i = 0; i < w.length; i++) t += w[i].innerHTML;
a.addEventListener('keypress', function (e) {
	e.preventDefault(), (a.value += t[j]), j++;
});

Почему при в воде в input выводится undefined, а не то что содержится в span ?
61b23cd0f0b4a584488287.jpeg
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Потому что когда начинается for переменная i=6, а элемента s[6] у вас нет.

Код сильно переусложнен. Однобуквенные переменные - зло, сбивают с толку.
Переменная i участвует аж в трех циклах, тоже плохо.

addEventListener внутри цикла. Хорошо, что сейчас этот цикл сломан :)

Вот это вы пытались сделать?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы