Собираем data данные через динамический созданный слушатель

Вообщем пишу расширение для chrome. И мне нужно из динамического созданного списка, при нажатии на определенный элемент брать из него дата данные и отправлять в другую функцию и так далее.

Вообщем вот как я пытаюсь взять данные и при компиляции я получаю ошибку, на dataset, файл ts.

Вот код:

response.data.res.forEach((res) => {
  const transObj = JSON.parse(res.sourceData);

  transObj.sense.forEach((sen) => {
    sen.gloss.forEach((gl) => {
      listTranslate.innerHTML += '<li style="padding-left:10px;border-bottom:1px solid #000;">'
        + '<a data-translate="' + gl.text + '" data-word="' + response.data.word
        + '" data-id="' + res.id + '" class="textDictionary">' + gl.text + '</a></li>';
      });
    });
  });

  let listDictionary = document.getElementsByClassName('textDictionary');
  for (let i = 0; i < listDictionary.length; i++) {
    listDictionary[i].addEventListener('click', (e) => {
      console.log(e);

      let translate = e.target.dataset.translate;
      let word = e.target.dataset.word;
      let dictionary_id = e.target.dataset.id;

      addToDictionary(translateObj.token, user, translateObj.url, translateObj.all_text, translate, word, dictionary_id);
    });
  }

Ну вообщем прошу помощи.


Ответы (1 шт):

Автор решения: Moonwolf45

Вообщем вот как я смог получить data данные.

response.data.res.forEach((res) => {
  const transObj = JSON.parse(res.sourceData);

  transObj.sense.forEach((sen) => {
    sen.gloss.forEach((gl) => {
      listTranslate.innerHTML += '<li style="padding-left:10px;border-bottom:1px solid #000;"><a class="textDictionary" data-word="' + response.data.word + '" data-id="' + res.id + '" data-translate="' + gl.text + '">' + gl.text + '</a></li>';
    });
    });
  });

  let listDictionary = document.getElementsByClassName('textDictionary');
  for (let i = 0; i < listDictionary.length; i++) {
    listDictionary[i].addEventListener('click', () => {
      addToDictionary(translateObj.token, user, translateObj.url, translateObj.all_text, listDictionary[i].getAttribute('data-translate'), listDictionary[i].getAttribute('data-word'), listDictionary[i].getAttribute('data-id'));
    });
  }
});
→ Ссылка