Задать вопрос
BarnyBroken
@BarnyBroken
Дизайнер, веб-разработчик.

Как взять переменную из цикла JQUERY?

Добрый день. Подскажите неуку как можно сделать такую вещь.

Мне нужно с одной страницы парсить данные. Но так как там их несколько, соответсвенно нужно пустить по циклу.
Но когда я назначаю переменную в цикле, уже вне цикла эта переменная не работает. Как сделать так, чтобы она работала ? Какие есть варианты ?

var parceItem = function(){
        $.get('/shop', function(result){
            $('.pageOrderProducts .pageOrderProduct').each(function(i){
                var itemName = $(result).find('.title').text();   
            });
            $('.orderForm #user_data_comments').val(itemName);
        });
    };
    parceItem();


Еще, очень бы хотелось узнать, как в textarea вставляя уже полученные данные делать их каждый с новой строки ?

Помогите пожалуйста, JQUERY пока только осваиваю. Заранее благодарен.
  • Вопрос задан
  • 522 просмотра
Подписаться 1 Оценить 3 комментария
Решения вопроса 1
var parceItem = function(){
        $.get('/shop', function(result){
            var itemNames = [];//объявим переменную выше цикла
            $('.pageOrderProducts .pageOrderProduct').each(function(i){
                itemNames.push($(this).find('.title').text());   
            });
            $('.orderForm #user_data_comments').val(itemNames.join(', ')));
        });
    };
    parceItem();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alone_lion1987
@alone_lion1987
Веб-разработчик
Но когда я назначаю переменную в цикле, уже вне цикла эта переменная не работает

Это происходит потому что срабатывает один из фундаментальных принципов js вообще, - замыкания. Простыми словами одно из проявлении ее сути заключается в том, что мы не можем получить доступ к переменным, объявленным во вложенных функциях, которые скрывают контекст от того уровня, где мы в данный момент находимся, но вложенные функции, т.е. их контекст имеет доступ к родительским переменным
--
Пока писал долгое вступление, автор поста выше вроде дал правильный код :)
Ответ написан
Ваш ответ на вопрос

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

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