Да и наверное innerHTML лучше в цикле не гонять.
<style>
pre {background: green} /*когда обернётся, фон станет зелёным*/
</style>
<input type="button" value="+" onclick="create('pre wrap', 5, 'pre')">
<script>
function create (name, amount, wrapping) {
//добавляем новый блок
var newDiv = document.createElement('div');
document.body.appendChild(newDiv);
//назначаем ему обработчик
newDiv.onclick = function () {
newDiv.innerHTML = '<' + wrapping + '>' + newDiv.innerHTML + '</' + wrapping + '>';
alert(newDiv.innerHTML); //для посмотра, что получилось
};
//добавляем кнопки в блок
var butStr = '<input type="button" value="' + name + '" >';
var str = '';
for (var i = 0; i < amount; i++) {
str += butStr;
}
newDiv.innerHTML = str;
}
</script>