Jquery-addable is a project mainly written in ..., it's free.
JQuery plugin for easily adding/removing elements from the page.
A simple jquery library for dynamically adding and removing DOM elements such as form fields.
<form id="form">
<div class="parent_container">
<div class="template_element">
<label for="some_input"></label>
<input type="text" name="some_input" />
<a href="#" class="remove">Remove This</a>
</div>
</div>
<a href="#" class="add_field">Add Field</a>
</form>
<script type="text/javascript">
$('#form .add_field').adds('#form .parent_container .template_element');
</script>
<form id="form">
<div class="parent_container">
<div class="template_element">
<label for="some_input"></label>
<input type="text" name="some_input" />
<a href="#" class="remove">Remove This</a>
</div>
</div>
<a href="#" class="add_field">Add Field</a>
</form>
<script type="text/javascript">
$('#form .add_field').adds('#form .parent_container .template_element', { removeOriginal : false });
$('.remove').removesParent(); // Apply remove to template element
</script>
<form id="form">
<div class="parent_container">
<div class="template_element">
<label for="some_input_counter">Input counter</label>
<input type="text" name="some_input_counter" />
<a href="#" class="remove">Remove This</a>
</div>
</div>
<a href="#" class="add_field">Add Field</a>
</form>
<script type="text/javascript">
$('#form .add_field').adds('#form .parent_container .template_element', { counter : 'counter', count : 1 });
</script>