Рассчитать общую цену на основе data-price и видимого div?

Я застрял с скрыть / показать div и подсчета общей стоимости. Допустим, у меня есть divA и divB. Теперь, когда отображается div A, отображаются два div с опциями меню и атрибутами data-price. Это работает, когда я жестко кодирую элементы var $, но когда divB видим, мне нравится, что элементы var $ доступны только для чтения divB1, см. Код

var $elements = $('#divA1, #divA2');
    var $elements = $('#divB1');
    $elements.on('change', function() {
         var $selected = $elements.children(":selected");
         var sum = 0;

         $selected.each(function() {
             sum += $(this).data('price');
         });

         $('#total_price').html('€'+sum);
    });

1 ответ

Ваша ошибка в строке 2, вы переделываете переменные $elements,

var $elements = $('#divA1, #divA2');
var $elements_b = $('#divB1');
if ($elements_b.length != 0) {
    $elements = $elements_b;
}
$elements.on('change', function () {
    var $selected = $elements.children(":selected");
    var sum = 0;

    $selected.each(function () {
        sum += $(this).data('price');
    });

    $('#total_price').html('€' + sum);
});
Другие вопросы по тегам