Onclick динамически добавленный атрибут setAttribute к элементу td передает переменную как строку

#javascript #onclick #setattribute

#javascript #onclick #setattribute

Вопрос:

У меня есть динамически созданная таблица с одной ячейкой, содержащей кнопку. Я использовал setAttribute для вставки события onclick, но переменная, которую он использует, передается как строка, а не как переменная. Функция с двумя точками просто добавляет очки игроку, который передается. Это работает в статической таблице, но не тогда, когда я использую метод setAttribute

 eletble.setAttribute('onclick', 'TwoPoints(student1);'); 

Комментарии:

1. student1 — это просто переменная, которая изменяется в зависимости от того, какой студент набрал очки. После заполнения таблицы может быть, скажем, 10 студентов. Поэтому для этого необходимо передать правильное имя ученика в функцию TwoPoints. Я попробую ваше предложение.

Ответ №1:

Если у вас есть таблица, используйте ячейку или строку для каждого учащегося и делегируйте из tbody

 const TwoPoints = student => console.log(student,"Two points");

document.getElementById("eletble").addEventListener("click", function(e) { 
  const tgt = e.target;
  TwoPoints(tgt.dataset.student) 
});
   
 <table>
<tbody id="eletble">
<tr><td data-student="Student 1">Student number 1</td></tr>
<tr><td data-student="Student 2">Student number 2</td></tr>
</tbody>
</table>