Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jQuery. Работа с динамически создаваемым списком. (https://javascript.ru/forum/jquery/24354-jquery-rabota-s-dinamicheski-sozdavaemym-spiskom.html)

nule 27.12.2011 12:01

jQuery. Работа с динамически создаваемым списком.
 
Приветствую!
Использую вот такой парсер rss-лент, на базе плагина jFeed. Он формирует список элементов ленты <ul>.
jQuery(function() {
    jQuery.getFeed({
      url: 'xml/rss.xml',
        success: function(feed) {
            
            var html = '';        
            for(var i = 0; i < feed.items.length && i < 15; i++) {
            
                var item = feed.items[i];
                    html += '<li>'+'<h3>'
                + '<a href="'
                + item.link
                + '">'
                + item.title
                + '</a>'
                + '</h3>';
                
                html += '<div class="updated">'
                + item.updated
                + '</div>';
                
                html += '<div>'
                + item.description
                + '</div>'+'</li>';
                }
            $("ul.paging").append(html);
        }
    })
});

А в body заготовка под него
<ul class="paging"></ul>

Лента парсится и отображается нормально, но обратиться к элементам <li> списка для дальнейшей работы не получается. Например
$(document).ready(function() {    
var li=$('li').html();
alert(li);
});

выдает null.
Присвоить элементам <li> какие-либо атрибуты тоже не удается.
В firebag видно, что список формируется правильно:
<ul class="paging">
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
</ul>

Ошибок никаких не выдает.
Подскажите, пожалуйста, что не так.
Спасибо!

Pavel M. 27.12.2011 12:25

Цитата:

Сообщение от nule
но обратиться к элементам <li> списка для дальнейшей работы не получается.

видимо обращаетесь до того как эти элементы созданы

nule 27.12.2011 12:29

Похоже на то, но не знаю, как обратится правильно.

Pavel M. 27.12.2011 13:01

сделайте setTimeout на какое-то время и проверьте есть эти элементы
если нет, то еще setTimeout

nule 27.12.2011 13:29

Спасибо за совет. С задержкой работает. Но как-то же можно отловить событие окончания формирования списка? Не хотелось бы в конечном варианте использовать setTimeout.

Pavel M. 27.12.2011 15:55

только сейчас обратил внимание
вывод строится у вас в функции (параметр success), которая в первом сообщении?

если да, то просто в конец этой функции, добавьте вызов своего кода

nule 27.12.2011 16:56

Спасибо! Так и сделал. Работает.


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