А зачем уникальный класс? Может лучше класс один, а вот id уникальные? https://jsfiddle.net/yk8xbnvr/
Ну собственно заменить id на class не проблема.
UPD А 0 у вас всегда был потому что обработчик события при каждом нажатии на кнопку отрабатывал с начала, и каждый раз создавалась локальная переменная var i = 0;
Проверку на заполнение полей лучше делайте в начале функции обработчика, а то получается что вы сначала берете значения, создаете html код, занимая память, а только потом проверяете поля на заполненность и если они не заполнены ничего не делаете. Лучше делать вначале типо:
$("#save").click(function() {
var newTask = $("#task").val();
var newDate = $("#date").val();
//делаем валидацию полей и если они не проходят валидацию возвращаем false
if (newTask.length > 0 && newTask != " ") {
return false;
}
//тут уже остальной код
});