В вашем коде есть некоторые ошибки, здесь код работает, сначала вы должны добавить свойство name, а во-вторых, в функции вы должны использовать «this», а не «btn».
Код JS и фрагмент кода, чтобы помочь вам.
<div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code> // Code goes here
var i;
for (i = 0; i < 10; i++) {
var btn = null;
btn = document.createElement("BUTTON");
btn.setAttribute("name", i + "_name");
var t = document.createTextNode("Button" + i);
btn.appendChild(t);
document.body.appendChild(btn);
if (btn.addEventListener) {
btn.addEventListener('click', function() {
alert("i am button " + this.getAttribute("name"));
});
} else if (btn.attachEvent) { // IE < 9 :(
btn.attachEvent('onclick', function() {
alert("i am button " + this.getAttribute("name"));
});
}
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<h1>Hello Plunker!</h1>
<script src="script.js"></script>
</body>
</html>