'a[x]'
на данный момент не определено.Вы должны сначала построить объект и назначить его позиции 'i' ('x' - действительно нестандартное имя для итератора, спасибо @Cito):
var a = new Array();
var i = 0;
$(that).children("li").each(function(){
console.log('test1');
a[i] = { name: 'f', link: 'UUUU' };
console.log('test2');
i++;
});
Примечание: ваш код пропускает ;
после каждого ().Несмотря на то, что это допустимый JavaScript, чтобы пропустить точки с запятой, я думаю, лучше использовать их явно, чтобы избежать неправильной интерпретации.
Создание массива может быть достигнуто с помощью .map ()
var a = [];
// .map() returns a jquery array, to obtain a pure javascript array, you must call .toArray() afterwards
a = $(that).children('li').map(function() {
return { name: 'f', link: 'UUUU' };
}).toArray();
Вот jsfiddle , чтобы проиллюстрировать
Эта статья охватывает использование .each () и .map () дляпостроение коллекций данных из списков в jquery.