Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Цикл for выводит только последнее значение (https://javascript.ru/forum/jquery/67511-cikl-vyvodit-tolko-poslednee-znachenie.html)

SaM1001 21.02.2017 16:56

Цикл for выводит только последнее значение
 
Всем здрасти!
Не пойму почему не проходит цикл, а пишется только последняя часть
Например у меня в объекте arr три значения, то я хотел бы на выхлопе иметь три div'a с id="device_0", id="device_1", id="device_2"

это код .html
<div class="fwdata" id="device" ...


А это у меня в .js
if (arr != undefined && arr.length > 0) {
            for (var i in arr) {
                
                    $(".fwdata").each(function () {
                    var id = $(this).attr('id', 'device_'+i );
                    });

            }
        }


Единсвенное что я вижу это id="device_2", но мне этого мало
Кто-нить может подсказать правильное решение?

рони 21.02.2017 17:18

Цитата:

Сообщение от SaM1001
class="fwdata"

Цитата:

Сообщение от SaM1001
$(".fmdata").

:-?

SaM1001 21.02.2017 17:20

Цитата:

Сообщение от рони
Сообщение от SaM1001
class="fwdata"
Сообщение от SaM1001
$(".fmdata").

Не, не тут ошибка, это я класс переименовывал для сокращения тут на форума и опечатался

рони 21.02.2017 17:23

SaM1001,
зачем нужен arr и что такое arr?

рони 21.02.2017 17:27

SaM1001,
//если arr нужен
                    $(".fwdata").each(function (i) {
                    arr && arr[i] !== void(0) && (this.id = 'device_'+arr[i]);
                    });
                   //если не нужен
                   $(".fwdata").each(function (i) {
                      this.id = 'device_'+i;
                    });


Цитата:

Сообщение от SaM1001
пишется только последняя часть

вы каждый раз всем элементам пишите одно и тоже, что последний раз писали то у всех и было.

SaM1001 21.02.2017 17:36

Не проходит почему-то, но всё равно спасибо, буду дальше думать

arr - объект в котором значения варируют, поэтому хотел в цикле иметь

рони 21.02.2017 17:46

SaM1001,
тогда так если обьект
var arr={};
     var elems = $(".fwdata");
     Object.keys(arr).forEach(function (key, i) {
     elems[i].id = 'device_'+ key
     });

SaM1001 21.02.2017 17:51

Млин, Рони, не голова - а кладезь!!! Спасибо вам огромное! Вот ещё бы пояснить что тут и как, а то я только учусь

SaM1001 22.02.2017 11:50

Был не прав, не объект, а массив объектов(((

рони 22.02.2017 13:48

SaM1001,
нет структуры нет совета


Часовой пояс GMT +3, время: 20:36.