Методом научного тыка удалось решить трабл:
Вместо:
$('.up').on('click', function(){
var curVal = $(this).next('input').val(),
curAttr = parseInt($(this).next('input').attr('id')),
prevAttr = curAttr - 1,
prevElem = $('#'+prevAttr),
prevVal = $(prevElem).val();
$(this).next('input').val(prevVal);
$(prevElem).val(curVal);
});
Сделал:
$('.up:last').on('click', function(){
var curVal = $(this).next('input').val(),
curAttr = parseInt($(this).next('input').attr('id')),
prevAttr = curAttr - 1,
prevElem = $('#'+prevAttr),
prevVal = $(prevElem).val();
$(this).next('input').val(prevVal);
$(prevElem).val(curVal);
});
И всё как часы!