Пытаться динамически генерировать переменные - неправильный подход. Это можно сделать (хотя и не в «строгом режиме») , но это не рекомендуется.
Вместо этого вы должны создавать коллекцию. Вы можете использовать Массив или Объект.
С массивом вы можете использовать .map()
для создания коллекции. Затем используйте .toArray()
для генерации массива.
var orderit = 0;
var myScroll = $('.scrollable').map(function(){
this.id = 'scrollp' + (++orderit);
return new iScroll( this.id );
}).toArray();
... и доступ к ним, как:
myScroll[0];
myScroll[1];
// ...and so on
Если вместо этого вам нужны имена myScroll1, myScroll2
, используйте объект.
var orderit = 0;
var scrolls = {};
$('.scrollable').each(function(){
this.id = 'scrollp' + (++orderit);
scrolls[ 'myScroll' + orderit ] = new iScroll( this.id );
});
... и получить к ним доступ как:
scrolls.myScroll1;
scrolls.myScroll2;
// ...and so on
К вашему сведению: .attr()
не нужно, чтобы получить и установить идентификатор элемента. Просто получите к нему доступ с помощью this.id
, как я сделал в своем ответе.
РЕДАКТИРОВАТЬ: Я использовал неправильное значение для построения свойств объекта. Исправлено.