Yo uso este
Código HTML:
<script type="text/javascript">
<!--
var i=0;
function agregar(src)
{
i++
src.innerHTML+='<tr> <input name="qcant'+i+'" type="text" id="qcant'+i+'" value="" size="10" /> <input name="qdescrip'+i+'" type="text" id="qdescrip" value="" size="20" /> <input name="qpart'+i+'" type="text" id="qpart'+i+'" value="" size="10" /> <input name="qfab'+i+'" type="text" id="qfab" value="" size="15" /></tr><br><input type="hidden" name="item" value="'+i+'">';
}
var it = i;
//-->
</script>
<div align="left" id="generado"></div>
<p><a href="#" onClick="agregar(document.getElementById('generado'));return false;">Add New Line Item </a></p>
me genera los campos dinamicos que deseee