есть еще такая вещь как documentFragment()
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<form action = "" method = "POST">
<input id = "m" name = "">
<br>
1. -
<input name = "">
<input name = "">
<input name = "">
<input type = "button" onclick = "add()" value = 'More!'>
</form>
<script type = 'text/javascript'>
var i = 1;
function add() {
var form = document.getElementsByTagName('form')[0],
fragment = document.createDocumentFragment();
fragment.appendChild(document.createElement('br'));
fragment.appendChild(document.createTextNode(++i + '. - '));
fragment.appendChild(document.createElement('input'));
fragment.appendChild(document.createElement('input'));
fragment.appendChild(document.createElement('input'));
form.appendChild(fragment);
}
</script>
</body>
</html>