JSFiddle - React, Tailwind, and code Playground

HTML

<form class="edit_invoice">
    <table>
        <tr>
            <td>
                <a class='add_fields icon_link new' data-fields='<tr class="item_fields">   <td width="13%" data-title="Date">      <input class="item-datepicker" id="" type="text" value="20.10.2014" /><input id="invoice_items_attributes_2236275320_date" name="invoice[items_attributes][2236275320][date]" type="hidden" value="2014-10-20" />   </td>   <td width="42%" data-title="Description">   <input id="invoice_items_attributes_2236275320_description" name="invoice[items_attributes][2236275320][description]" type="text" value="Erstellung einer Website" />   </td>   <td width="15%" data-title="Price">     <input id="invoice_items_attributes_2236275320_price" min="0" name="invoice[items_attributes][2236275320][price]" type="number" value="50.0" /> </td>       <td width="10%" data-title="Qty">   <input id="invoice_items_attributes_2236275320_quantity" min="0" name="invoice[items_attributes][2236275320][quantity]" type="number" value="1" />  </td>   <td width="10%" data-title="Total">     <span class="item_total">0</span>   </td>       <td width="10%">        <input id="invoice_items_attributes_2236275320__destroy" name="invoice[items_attributes][2236275320][_destroy]" type="hidden" value="false" />      <a class="remove_fields icon_link destroy" href="#">Remove</a>  </td></tr>' data-id='2236275320' href='#'>Add item</a>
            </td>
        </tr>
    </table>
</form>

JavaScript

$(function() {
	
	// Add a new row of item fields
	$('form.edit_invoice').on('click', '.add_fields', function(event) {	
		var regexp, time;
		time = new Date().getTime();
		regexp = new RegExp($(this).data('id'), 'g');
		$(this).closest('tr').before($(this).data('fields').replace(regexp, time));	
		calculateItemTotals();		
		event.preventDefault();
	});	
	
	// Update item total when item price or quantity gets changed
	$('form.edit_invoice').on('change', 'input[id$="_price"], input[id$="_quantity"]', function() {
		calculateItemTotals();	
	});
	
});

function calculateItemTotals() {
	$('.item_fields').each(function() {

		var price = $(this).find('input[id$="_price"]').val();
		var quantity = $(this).find('input[id$="_quantity"]').val();
	
		var total = parseFloat(price) * parseFloat(quantity);
	
		$(this).find('.item_total').text(total);	
	});	
}