@Sergey750il

Не работает сравнение в цикле?

В консоль вывод элементов массива выходит правильно, но в требуемый цвет при сравнении окрашивается только первый элемент.
var number = $('.ofice .ofice_status').map(function() {
        return $(this).html();
    });
    var number_js = [];

    for (var p = 0, len = number.length; p <= len; p++) {
        if (number[p] == 'Свободен') {
            number_js[p] = $('.ofice:eq(' + p + ')>.ofice_number>a').map(function() {
                    return $(this).html();
                })[0];
               
              
                for (var i = 0, le = rsrGroups.length; i <= le; i++) {
                     // console.log(number_js[p]);
                     // console.log(rsrGroups[i].data("room"));
                     if (number_js[p]==rsrGroups[i].data("room")) {
                          rsrGroups[i].attr('fill','red');
                     }
                }
   
        }
    }
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
Проблема в условии цикла
for (var i = 0, le = rsrGroups.length; i <= le; i++) {

i <= le - нужно оставить только меньше, иначе на i, равном rsrGroups.length, свалится с ошибкой
Ну и верхний цикл тоже лучше только меньше, итерация с 0 идет
В итоге получится
for (var i = 0, len = rsrGroups.length; i < len; i++) {
  if (number_js[p] == rsrGroups[i].data("room")) {
    rsrGroups[i].attr('fill', 'red');
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
for (var i = 0, le = rsrGroups.length;
le - это опечатка?
Ответ написан
@Sergey750il Автор вопроса
var rsrGroups = [path_ag, path_ah, path_aj, path_ak, path_al, path_am, path_ao, path_ap, path_aq, path_ar, path_ca, path_cb];

path_ag.data("room", "201");
    path_ah.data("room", "212");
    path_aj.data("room", "218");
    path_ak.data("room", "219");
    path_al.data("room", "202");
    path_am.data("room", "215");
    path_ao.data("room", "205");
    path_ap.data("room", "204");
    path_aq.data("room", "214");
    path_ar.data("room", "213");
    path_ca.data("room", "216");
    path_cb.data("room", "203");

<div id="ofices">
<div class="ofice">
<div class="ofice_number"><a href="#">201</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">212</a></div>
<div class="ofice_status" data-select-like-a-boss="1">Занят</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">218</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="sds">219</a></div>
<div class="ofice_status">Занят</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="sd">202</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="sdd">215</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">205</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">204</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">214</a></div>
<div class="ofice_status">Занят</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">213</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">216</a></div>
<div class="ofice_status">Свободен</div>
</div>
<div class="ofice">
<div class="ofice_number"><a href="#">203</a></div>
<div class="ofice_status">Свободен</div>
</div>
</div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы