Как узнать value нажатой кнопки

228
18 марта 2018, 22:57

window.onload = function() { 
    var bt = document.getElementsByClassName("but"); 
    for (var i = 0; i < bt.length; i++) { 
    bt[i].onclick= function strPad() { 
      alert(bt[i].value); 
    } 
  } 
}
<button value="FILL_RIGHT" class="but" ">Справа</button> 
<button value="FILL_LEFT" class="but" ">Слева</button>  
<button value="FILL_BOTH" class="but" ">И там , и там</button><br><br>

Я понимаю , что цикл for , в данном коде , просто переопределяет событие onclick у каждого полученного объекта в массиве . Подскажите , как узнать value именно у той кнопки , которая была нажата .
Код нужен чисто на JS , а не на jQuery.

Answer 1

Контекст, в котором вызывается обработчик, - кликнутый элемент.

bt[i].onclick = function() {
    alert(this.value);
};

window.onload = function() { 
  function strPad() { 
    console.log(this.value); 
  } 
 
  var bt = document.getElementsByClassName("but"); 
  for (var i = 0; i < bt.length; i++) { 
    bt[i].onclick = strPad; 
  } 
}
<button value="FILL_RIGHT" class="but">Справа</button> 
<button value="FILL_LEFT" class="but">Слева</button> 
<button value="FILL_BOTH" class="but">И там , и там</button><br>

READ ALSO
Webpack очень долго собирает

Webpack очень долго собирает

Написал конфигурацию для Webpack 3Все работает, но есть одна большая проблема

204
Ошибка в выводе данных exif

Ошибка в выводе данных exif

Вывести значения в формате floatВыдает значения Nan

212
NodeJs проблема установки?

NodeJs проблема установки?

Не могу понять, что не такВот это весь код: console

158