В функции увеличение вы используете event.target .
Поскольку у вас есть тег кнопки, который содержит тег ap, возможно, что event.target - это когда-то тег p. Это зависит от того, где пользователь нажимает на кнопку. Тег p не имеет атрибута name , поэтому, когда пользователь нажимает на тег p внутри кнопки, значение равно undefined .
Вы хотите всегда получать тег кнопки в функции увеличение . Вы можете сделать это, используя event.currentTarget . currentTarget - это всегда тег, для которого установлен атрибут onClick .
В заключение: используйте event.currentTarget.name вместо event.target.name , поэтому вы всегда получите значение атрибута name тега кнопки.
increase(event){
var name = event.currentTarget.name;
}
Дополнительная информация о event.target vs event. currentTarget можно найти в этом ответе StackOverflow: { ссылка }
Фрагмент кода, демонстрирующий разницу между event.target и event.currentTarget:
function increase(event) {
alert(
'event.target: ' + event.target.tagName + '\n' +
'event.currentTarget: ' + event.currentTarget.tagName
)
}
button {
background: #faa;
}
p {
background: #aaf;
padding: 10px;
}
<button onClick="increase(event)">
The button tag
<p>The p tag</p>
</button>