JQuery AJAX не возвращает YouTube iframe SRC - PullRequest
0 голосов
/ 25 февраля 2012

У меня здесь есть jsFiddle: http://jsfiddle.net/ZXDYS/22/

Я создаю сводки постов Blogger с помощью jQuery, хотя он не возвращает элемент iframe's attr src ... Вы можете найти блог здесь для справки.что я сделал не так?пожалуйста помогите!

$.ajax({
    url: 'http://www.blogger.com/feeds/1570527947646221682/posts/default?alt=json-in-script&max-results=3',
    type: 'get',
    dataType: "jsonp",
    success: function(data){
        for (var i = 0; i < data.feed.entry.length; i++){
            var title = data.feed.entry[i].title.$t;
            var content = data.feed.entry[i].content.$t;
            var img = $(content).find("img").attr("src");
            var iframe = $(content).find("iframe").attr("src");
            if(img==undefined){
                var imgsrc = "no image in post :( sorry?";
                    }else{
                    var imgsrc = img;
            }
            $('div.related').append('<table border="1"><tr><td colspan="2">post title - '+title+'</td></tr><tr><th width="100%">Image src</th><th width="100px">Iframe src</th></tr><tr><td>'+imgsrc+'</td><td>'+iframe+'</td></tr></table>');           
        }
    }
});​

1 Ответ

1 голос
/ 25 февраля 2012

Возвращенная строка из вашего запроса JSONP выглядит следующим образом:

<iframe width="100%" height="315" src="http://www.youtube.com/embed/9u7Fp2VVdkM"
 frameborder="0" allowfullscreen></iframe>video
<div class="blogger-post-footer">
   <img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1570527947646221682-8424983193135836585?l=ykhaliq.blogspot.com' alt='' />
</div>

Обратите внимание, что элемент <iframe> не имеет родительского элемента.Метод .find находит любых потомков , но не «корневых» элементов.

Общее решение - создать оболочку и добавить строку:

var $content = $('<div>').html(content);
var img = $content.find("img").attr("src");
var iframe = $content.find("iframe").attr("src");

Фиксированный код: http://jsfiddle.net/ZXDYS/31/

...