Ассигнование события onClick используя document.getElementById

Код

function asignarEventos() {

  var uno = document.getElementById("uno");
  var dos = document.getElementById("dos");
  var tres = document.getElementById("tres");

  var arreglo = [uno, dos, tres];

  for (var i = 0; i < arreglo.length; i++) {

    var elemento = arreglo[i];
    var texto = elemento.innerHTML.trim();

    elemento.onclick = function(){
      alert(texto);
    };

  }

}

asignarEventos();
<html>

<head>
</head>

<body>

  <a id="uno">
    Uno
  </a>

  <a id="dos">
    Dos
  </a>

  <a id="tres">
    Tres
  </a>

</body>

</html>

Цель

Переменная arreglo он содержит список элементов HTML, которые получаются заблаговременно используя document.getElementById(). Позже я хочу распределить динамическим способом событие в элемент HTML используя свойство .onclick DOM Element.

То, что я хочу, что, дав click на каком-либо из элементов <a>, его явилось одним alert() или работала функция показывая текст, содержавший в них.


Проблема

В этой секции кода:

var elemento = arreglo[i];
var texto = elemento.innerHTML.trim();

elemento.onclick = function(){
  alert(texto);
};

Я получаю элемент, содержавший в переменной arreglo, и позже я получаю Вашу стоимость innerHTMLа именно, текст, что contiene, потом распределил признак onclick распределяя анонимную функцию, которая выполняла один alert() показывая текст, который содержит элемент HTML.

Но кликнув на любом из элементов всегда, он печатается innerHTML последнего элементов, в этом случае это слово "три". Когда это должна бы быть стоимость каждого элемента индивидуально.


Вопрос

Поскольку возможно распределять событие onClick() в элемент, полученный с document.getElementById() ?


Замечание

Нужно доводить до сведения что я должен решать проблему используя чистый язык сценариев JavaScript, мне не стоит использовать книжный магазин как jQuery или другие, так как в вышеупомянутой среде я не могу использовать ее.

8
задан 01.08.2017, 16:05
0 ответов