АБСОЛЮТНО все неправильно...
1. Зачем складывать цены отдельно, а потом героически их искать через id в селекте?
2. Что дает .replace() после .html()?
3. Переменные создаем на событии change, а потом удивляемся
4. Выводим результат до всех изменений, а потом удивляемся
5. Не делаем проверки на выбранное значение в селекте, то-то потом удивимся
Я на jsfiddle не помню пароль, да и лень, немного поправил ошибки (главное понять принцип), НО:
1. Нет проверки на undefinded значения
2. Я забил на событие change, ибо лень
3. Гуру JS обосрут и меня, ибо всегда есть кто-то лучше тебя
//Выставляем цены по умолчанию
var firstPrice = 0;
var secondPrice = 0;
//Получаем значение цены1 при событии изменения селекта
$('#cel1').change(function() {
firstPrice = $(this).find(":selected").data("price");
$('#resultPrice').html(firstPrice);
});
//Тоже самое делаем со 2 ценой, но по уму, мы должны проверять оба события, а также обе цены, прежде чем суммировать цены, но мне лень
$('#cel2').change(function() {
secondPrice = $(this).find(":selected").data("price");
$('#resultPriceTaxi').html(secondPrice);
let rezult = firstPrice + secondPrice; //плюсуем две суммы
console.log(rezult);
$('#sum').html(rezult);
});
Забыл сказать, что в обоих селектах нужно сделать data-price у option (вместо data-priceid у первого селекта)