Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > JQ: $.each(function(N){/***/}) уникальный N


Автор: InfMag 6.10.2009, 17:27
Доброго времени суток, написал функцию с использованием $.each() на jquery мне выдаётся N число по нарастанию от каждого прогона по циклу.
Код

$.each(obj,
   function(N) {
      //
   }
);

Функция вызывается позже повторно, что создаёт ошибки, из-за того что N в следующий раз уже не уникальный, потому что уже был использован в предыдущем вызове функции.
Можно ли как-то назначить старт с определённого числа, что бы самый первый N был равен например 50?

Автор: unicross 6.10.2009, 19:20
Цитата(InfMag @  6.10.2009,  18:27 Найти цитируемый пост)
мне выдаётся N число по нарастанию от каждого прогона по циклу

Насколько я понимаю, вам выдается индекс элемента в массиве или ключ (свойство) объекта.
Цитата(InfMag @  6.10.2009,  18:27 Найти цитируемый пост)
Можно ли как-то назначить старт с определённого числа, что бы самый первый N был равен например 50?

Создайте глобальную переменную и увеличивайте ее внутри функции $.each().
Код

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
   var N = 50;
   var arr = [ 1, 2, 3 ];
   $.each(arr, function() {
      $("#div1").append(N + "<br>");
      N++;
   });
   $.each(arr, function() {
      $("#div1").append(N + "<br>");
      N++;
   });
   var obj = { "v1":1, "v2":2, "v3":3 };
   $.each(obj, function(key) {
      $("#div1").append(N + " =&gt; " + key + "<br>");
      N++;
   });
});
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>


Или нужно что-то другое?

Автор: IDVsbruck 6.10.2009, 23:39
Назначение? Сложно ответить на вопрос, который не задан. Думаю, неправильное распределение задачи.

Автор: InfMag 7.10.2009, 12:28
Ну я имел в виду что бы цикл начинался с определённого числа. Но в принципе Вы правы, в любом случае нужно создавать глобальную переменную...

Автор: InfMag 7.10.2009, 14:43
Сделал глобальную переменную и что бы не ковырять много чего по новой - сделал проще, в начале цикла после function (N)
Код

var objcounter = 0;
$.each(obj,
   function(N) {
      objcounter++;
      N = objcounter;
   }
);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)