ну как то так:
//как сказал cmd, упростим код. коменты в коде
$(document).ready(function(){
//------------
//jquery code
//создадим глобальные переменные
var zn2 = 0, zn1 = 0, zn = 0;
$('ul.cities_list li').click(function()
{
var tv = parseFloat($(this).attr('alt'));
// document.getElementById("dl").value - вот это зачем?? если используем jquery, то это можно написать так: $("#dl").val()
var dl = parseInt($("#dl").val());
var sl = parseInt($("#sl").val());
var sh = parseInt($("#sh").val());
//коментарий по этому куску: parseFloat(tv)*parseInt(dl)*parseInt(sl)/100*parseInt(sh)
//возьмем например из этого куска вот это: parseInt(dl)
// вы же уже писали parseInt выше.. не нужно это писать еще раз
//$(".delivery_text").html(parseFloat(tv)*parseInt(dl)*parseInt(sl)/100*parseInt(sh)); - старый вариант
//а вот ниже новый вариант
var res = tv * dl * sl / 100 *sh; //сначала запишем в переменную
$(".delivery_text").html(res); // - новый вариант
zn = res;//var писать не нужно, они объявлены как глобальные
addIt();
});
$('ul.cities_list1 li').click(function()
{//делаем все аналогично предыдущему
var tv1 = parseFloat($(this).attr('alt'));
var dl = parseInt($("#dl1").val());
var sl = parseInt($("#sl1").val());
var sh = parseInt($("#sh1").val());
var res = tv1 * dl1 * sl1 / 100 *sh1;
$(".delivery_text1").html(res);
var zn1 = res;
addIt();
});
$('ul.cities_list2 li').click(function()
{
var tv2 = parseFloat($(this).attr('alt'));
var dl = parseInt($("#dl2").val());
var sl = parseInt($("#sl2").val());
var sh = parseInt($("#sh2").val());
var res = tv2 * dl2 * sl2 / 100 *sh2;
$(".delivery_text2").html(res);
var zn2 = res;
addIt();
});
function addIt()
{
$("#output").val(zn1 + zn2 + zn);
}
//------------
});