Тест if (document.getElementById("clickable1"))
будет:
- Звоните
getElementById
- Это будет оцениваться как
null
(если элемент не существует) или как элемент (если он существует).
- Проверьте, является ли это истинным значением (элементы,
null
нет).
Ваш тест не имеет ничего общего с определением, на какую кнопку нажимали, только если она существует в документе.
this
будет элементом, к которому был прикреплен обработчик событий, так что вы можете сравнить его с кнопками…
if (document.getElementById("clickable1") === this){
Между тем, объект события скажет вам, какой элемент был фактически нажат, так что вы можете сделать:
function changeText(evt){
if (document.getElementById("clickable1") === evt.target)
… этот подход лучше использовать при использовании делегирования события , поскольку он позволяет привязать обработчик события один раз к элементу, который является предком элементов, по которым можно щелкнуть .
Это более сложный подход, и вы должны учитывать такие ситуации, как:
<button> a <span>b</span> c </button>
… где щелчок по b
в кнопке даст вам цель события для элемента <span>
.