2016-01-27 2 views
1

Как я могу подсчитать в каждой функции jQuery?Выполнение подсчета суммы в jQuery каждый

<script> 
    ajax(); 
    function ajax(){ 
     $.ajax({ 
      url:"ChinaWeather.json", 
      dataType:"json", 
      success: function(data){ 
       $.each(data, function(index, item){ 
        var sum = 1; 
        $('#countryweatherwrap').append('<div id="countryweather' + sum + '">' + data[index].season + 'Temperatuur: ' + 
         data[index].temperature+' °C <br />' + '<div style="height:'+ data[index].temperature*5.50 +'px;width:100%;border:1px solid #000; background-color:yellow"></div></div>' 
         ); 
        }); 
      } 
     }) 
    } 
</script> 

На данный момент код возвращает <div id="countryweather"> в каждом цикле. Я хочу, чтобы он считал, поэтому он возвращает <div id="countryweather2">, <div id="countryweather3"> и т.д.

ответ

2

a. Переместить var sum за пределы каждого цикла (сделать его глобальным)
b. Увеличиваем значение sum на 1 с помощью ++;

<script>   
    ajax(); 
    function ajax(){   
     $.ajax({ 
      url:"ChinaWeather.json", 
      dataType:"json", 
      success: function(data){ 
       var sum = 1; 
       $.each(data, function(index, item){      
        $('#countryweatherwrap').append('<div id="countryweather' + sum + '">' + data[index].season + 'Temperatuur: ' + 
         data[index].temperature+' °C <br />' + '<div style="height:'+ data[index].temperature*5.50 +'px;width:100%;border:1px solid #000; background-color:yellow"></div></div>'      
         ); 
         sum++; 
        }); 
      } 
     }) 
    } 
</script> 
+2

На основании того, что хочет OP, я бы рекомендовал объявить сумму внутри обратного вызова успеха (строка перед '$ .each'). –

+0

Согласовано. В этом есть смысл. +1 – DinoMyte

+0

@ DinoMyte Спасибо, что ответили! Я не программировал с jQuery некоторое время, я не знал, что это может быть так просто! – Mae

1

Вы можете использовать индекс:

$.each(data, function(index, item) { 
    $('#countryweatherwrap').append('<div id="countryweather' + (index+1) + '">' + data[index].season + 'Temperatuur: ' + data[index].temperature + ' °C <br />' + '<div style="height:' + data[index].temperature * 5.50 + 'px;width:100%;border:1px solid #000; background-color:yellow"></div></div>'); 
}); 

То есть индекс, начиная с 0 так добавить 1.

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