2015-11-04 4 views
-2

У меня возникла проблема с получением значения переменной. В цикле каждого запроса я получаю правильное расчетное значение, но когда я пытаюсь получить значение вне каждого цикла, то это показывает значение как 0 Вот код: Обновленный кодНевозможно получить значение переменной за пределами каждого цикла в jQuery

// Discounts Calculations 
     var item_discounts_current = 0; 
     $(this).nextUntil("#item-extras-discounts").find('.item-current-discounts :selected').each(function(item_discounts_current) { 
      var item_discounts_type = parseFloat($(this).attr('data-dtype')); 
      if (item_discounts_type == 1) { 
       item_discounts_current += parseFloat($(this).attr('data-dvalue')) + item_discounts_current; 
      } 
      else { 
       var percentage_val = parseFloat($(this).attr('data-dvalue'))/100; 
       var new_item_discount_value = item_total_price_current * percentage_val; 
       item_discounts_current += item_discounts_current + new_item_discount_value; 
      } 
      // This is showing calculated value 
      console.log(item_discounts_current); 
     }); 
     // This is showing 0 value 
     console.log(item_discounts_current); 
+7

Просто попробуйте удалить var из item_discounts_current внутри цикла. – SSA

+1

Да, вы снова инициализируете 'item_discounts_current' внутри цикла, просто удалите этот' var'. –

+0

Я удалил var, но все равно я получаю 0 значение см. Мой обновленный Вопрос –

ответ

2

С var item_discounts_current внутри каждого цикла вы создаете новую локальную переменную вместо глобальной переменной. Удалите var, чтобы использовать глобальную переменную.

Here вы можете прочитать о сфере применения переменных в JavaScript.

+0

Я удалил var, но все же я получаю 0 значение см. Мой обновленный Вопрос –

+0

Удалите 'item_discounts_current' из' function (item_discounts_current) 'в каждом функция. Вы объявляете параметр с тем же именем глобального var –

+0

большое спасибо. он отлично работает сейчас –

Смежные вопросы