Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2016, 20:59
Аватар для Silent Walking
Новичок на форуме
Отправить личное сообщение для Silent Walking Посмотреть профиль Найти все сообщения от Silent Walking
 
Регистрация: 22.09.2016
Сообщений: 1

одинаковые class для каждого ajax
Здравствуйте, помогите пожалуйста с моим вопросом.
И так, моя функция выбирает все одинаковые 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. Извините за мое нубство

Последний раз редактировалось Silent Walking, 22.09.2016 в 21:34.
Ответить с цитированием
  #2 (permalink)  
Старый 22.09.2016, 21:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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

[].forEach.call

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

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как установить значения поле name для каждого элемента формы autofan jQuery 0 27.07.2014 10:57
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
AJAX для ЧАЙНИКОВ (вопросы) sc2r2bey AJAX и COMET 16 10.07.2009 21:23
Применение функции для каждого элемента sergeygerasimov jQuery 2 26.11.2008 11:15