Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   одинаковые class для каждого ajax (https://javascript.ru/forum/misc/65057-odinakovye-class-dlya-kazhdogo-ajax.html)

Silent Walking 22.09.2016 20:59

одинаковые class для каждого ajax
 
Здравствуйте, помогите пожалуйста с моим вопросом. :help:
И так, моя функция выбирает все одинаковые div class, после чего из каждого из них берет id, а из него различные цифры, далее берутся другие одинаковые class, и в каждый вставляется различное цифровое значение, полученное ранее, то-есть, получили цифры в 1, вставили в 1, 1 в 1, 2 в 2, 3 в 3 и т.д., тут все нормально:

(Пример)
<div class="information_field">
<div id="qlcv_11221122_qq_qq" class="users_b">text</div>
</div>
<div class="information_field">
<div id="qwe_11433322_qvgqq" class="users_b">text</div>
</div>
<div class="information_field">
<div id="qffq_19642222_qjjqq" class="users_b">text</div>
</div>
<div class="information_field">
<div id="qgg_17777313_qwwqq" class="users_b">text</div>
</div>
<div class="information_field">
<div id="qwh_33333333_qaaaa" class="users_b">text</div>
</div>


function set_stat() {
var x = document.querySelectorAll("div.users_b");
var i;
for (i = 0; i < x.length; i++) {
var id = x[i].id.replace(/\D+/g,"");
var info = document.getElementsByClassName("information_field")[i];
    info.innerHTML = info.innerHTML + id;
    console.log(id);
}
}


После этого я решил попробовать добавить ajax запрос, который будет делаться с полученными цифрами, по порядку. Попробовал различные варианты, и понял, что с ajax предыдущая функция работает как-то не так, делал чтобы полученные цифры вставлялись в url запроса и получал ответные значения, после чего с полученными значениями пробовал, чтобы они вставлялись по порядку, как и цифры, но с ajax они вставлялись все в кучу, в последний class, вот пример функции ниже, она не работает как выше, она в двух местах, где выбираются class берет лишь только последние, по множеству раз, кол-во раз зависит от кол-ва class которое находит. Мне нужно чтобы в ajax это работало также как и без него.

function set_stat() {
var x = document.querySelectorAll("div.users_b");
var i;
for (i = 0; i < x.length; i++) {
var id = x[i].id.replace(/\D+/g,"");
var info = document.getElementsByClassName("information_field")[i];
$.ajax({
    success : function(){
    info.innerHTML = info.innerHTML + id;
    console.log(id);
    }
});
}
}


P.S. Извините за мое нубство :(

рони 22.09.2016 21:32

Silent Walking,
решение
замените for на

[].forEach.call

коллекции-не-массивы

тогда с i и id и info будет всё в порядке

Цитата:

С вопроса "Почему это не работает?" люди обычно начинают изучение замыканий.
http://javascript.ru/basic/closure#p...-ispolzovaniya


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