#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>