Как получить тоже самое, но без eval?
<body>
<script>
var mas = ['text0', 'text1', 'text2'];
var len = mas.length;
for (var i = 0; i < len; i++) {
but = document.createElement('button');
var str = 'but.onclick = function () {\
alert("' + mas[i] + '");\
}';
eval(str);
but.innerHTML = 'but' + i;
document.body.appendChild(but);
}
</script>