priya231 Ответов: 1

Почему я получаю только последнюю строку из таблицы значений в массив с помощью jQuery


var bookingitems = новый массив();
ВАР bookingitem = {};
$("[id*=gvBookingDt] tr"). each (функция () {
bookingitem.ItemNo = $(это).найти("период[класс*=ItemNo]").HTML-код();
bookingitem.ItemDes = $(this). find ("td:nth-child(4)"). html();
bookingitem.NoofPieces = $(this). find("td:nth-child(5)"). html();
bookingitem.Weight = $(this). find("td:nth-child(6)"). html();
bookingitems. push(bookingitem);
});


Мой Gridview содержит две записи:

itemNo Itemdesc noofpcs вес
1 мобильное 12 20кг
2 ноутбук 13 50 кг

когда я пытаюсь найти детали массива
for (int i=0;i<=bookingitems.Count-1; i++){}
Получение значения последней строки olny два раза

Что я уже пробовал:

Я попытался поместить предупреждение внутрь (цикл gridview с помощью jquery).В окне оповещения он показывает данные обеих двух строк, но почему он не может протолкнуть оба элемента в arraylist.Я не получаю ни малейшего представления.

Любая помощь, пожалуйста......

Заранее спасибо

1 Ответов

Рейтинг:
10

Peter Leow

Поместив это

var bookingitem = {};
вне функции цикла" each " (фактически любых функций) он становится глобальным объектом, в результате чего цикл "each" всегда перезаписывает свойства этого же объекта.
Вы должны поместить его внутрь каждой функции следующим образом:
$("[id*=gvBookingDt] tr").each(function () { 
    var bookingitem = {};
    // ...

так что на каждой итерации создается новый локальный объект.


priya231

Большое вам спасибо за Ваш быстрый ответ.

priya231

Большое вам спасибо за Ваш быстрый ответ