Присвойте переменную манипулируемым данным из результатов jQuery getJSON - PullRequest
0 голосов
/ 08 января 2010

Как назначить переменную для возвращаемых данных JSON, которыми манипулировали с помощью .replace (), как показано ниже. Цель: построить URL для миниатюрного изображения видео из идентификатора видео, возвращенного JSON.

Вопрос: Как назначить идентификатор видео (например, mVWhWsgHzKM) переменной, чтобы можно было создать URL-адрес эскиза.

$.getJSON(
    'http://gdata.youtube.com/feeds/users/soccerdude1935/favorites?alt=json-in-script&callback=?', 
    function(data){
        $.each(data.feed.entry, function(i, item){
            // assign variable to the returned JSON data
            var id = item['id']['$t']; 

            // URL contain video ID is put inside a P tag and assign class ID.
            $("<p></p>").text(id).addClass('vidId'); 

            $('p.vidId').each(function () {
                var id = $(this).text();
                // removes all other text from URL except for video ID.
                id = id.replace("http://gdata.youtube.com/feeds/videos/",""); 
                // video ID is assigned to a var. Is this correct? because it is not working as a var. 
                // Note: no errors when running the code.
                var imgSrc = $(this).text(id); 
            });

            // thumbnail URL construction and placement inside a img element's src tag.
            $(<img />).attr('src', 'http://i2.ytimg.com/vi/'+imgSrc+'/default.jpg');
        });
    }); 

в результате URL-адрес img src выглядит следующим образом: http://i2.ytimg.com/vi/mVWhWsgHzKM/default.jpg, но когда я запускаю этот код, он не дает желаемых результатов. Есть предложения?

Любые идеи будут с благодарностью. Спасибо.

1 Ответ

1 голос
/ 09 января 2010

Я сократил код, чтобы заставить его отображаться.Я только что создал тег div с id = video, а затем просто добавил каждый эскиз к контейнеру.

Используя ваш код, похоже, проблема в том, что вы каждый второй оператор.Он не запускается и поэтому никогда не присваивает значение imgSrc.Теперь это может быть потому, что у меня нет HTML.

    <div id="video"></div>
    <script>
        $(document).ready(function () {
            $.getJSON('http://gdata.youtube.com/feeds/users/soccerdude1935/favorites?alt=json-in-script&callback=?', 
            function(data){
                $.each(data.feed.entry, function(i, item){
                    var id = item['id']['$t'];

                    id = id.replace("http://gdata.youtube.com/feeds/videos/",""); 

                    $("#video").append('<div id="'+id+'">');
                    $("#video").append('<img src="http://i2.ytimg.com/vi/'+id+'/default.jpg">');
                    $("#video").append('</div>');
                });
            }); 
        });
    </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...