Индекс приращения JavaScript в функции - PullRequest
0 голосов
/ 03 мая 2010

Я просто пытаюсь выяснить, как создать индекс внутри функции, чтобы я мог отслеживать элементы, которые она генерирует, и я не уверен, как это сделать, похоже, я должен это знать ..

addLocation(options,location)

   funciton addLocation(options,location){
       $('#list').append('<li class="location"><div>'+location.label+'</div>'+
        '<input type="hidden" name="location['+x+'][lat]" value="'+location.lat+'" />'+
        '<input type="hidden" name="location['+x+'][lon]" value="'+location.lon+'" />'+
        '<input type="hidden" name="location['+x+'][loc]" value="'+location.loc+'" />'+
        '<input type="hidden" name="location['+x+'][label]" value="'+location.label+'" />'+
    '</li>');
   }

теперь обычно у вас есть forloop, чтобы помочь вам отслеживать вещи, но в этом случае я не добавляю элементы в цикле и продолжаю получать сообщение об ошибке x в неопределенном

ценю любую помощь, которую вы можете оказать

спасибо Mike

Ответы [ 3 ]

3 голосов
/ 03 мая 2010

Поскольку вы хотите, чтобы при каждом вызове функции значение x увеличивалось, вы можете хранить x в замыкании, например:

var addLocation = (function (){
  var x = 0; // store x
  return function (options,location) {
    x++; // increment x
    $('#list').append('<li class="location"><div>'+location.label+'</div>'+
    '<input type="hidden" name="location['+x+'][lat]" value="'+location.lat+'" />'+
    '<input type="hidden" name="location['+x+'][lon]" value="'+location.lon+'" />'+
    '<input type="hidden" name="location['+x+'][loc]" value="'+location.loc+'" />'+
    '<input type="hidden" name="location['+x+'][label]" value="'+location.label+'" />'+
    '</li>');
  };
})();
0 голосов
/ 03 мая 2010
var x = $("#list>li").length + 1;
0 голосов
/ 03 мая 2010

Объявите x, поскольку в приведенном выше коде он не определен.

var x = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...