0

好的,据我了解,我在这里要完成的工作非常简单,基本上我已经使用 youtube API 从 url 字符串构造了一个搜索结果。如果浏览到url,可以看到返回的xml,一切正常。网址:

https://gdata.youtube.com/feeds/api/videos?q=all the small things&max-results=1&v=2&format=5&orderby=relevance&safeSearch=none

我已经编写了一些 jquery,它应该用xml 元素<div id = "agenda">中的数据填充我的名为议程 () 的 div,它确实存在于 html 中。<yt:videoid>本质上,只是用视频 ID 填充 div。这是我的 jQuery:

$(document).ready(function(){
    $.get("https://gdata.youtube.com/feeds/api/videos?q=all the small thing&max-results=1&v=2&format=5&orderby=relevance&safeSearch=none",{},function(xml){
        $('entry',xml).each(function(i){
            var vidID = $(this).find("yt:videoid").text();
        });//end find entry

        alert(vidID);
        $('#agenda').html(vidID);
    });//end ajax   
});//end .ready

但是实际上什么都没有发生,警报没有响起,实际上它引发了一个vidID未定义的错误,据我所知,一切都按应有的方式设置,如果有人真的需要看,我会发布链接它活着,但目前它在我的树莓派服务器上,所以我并不热衷于发布我的 IP,但我很绝望:p。如果有人能发现我做错了什么,我已经做了几个小时了,这让我发疯了。提前致谢。

4

1 回答 1

1

我不确定数据的格式到底是什么,但问题是您的 vId 范围仅在 $.each 函数内。因此,您需要将其移出每个块才能访问其值。接下来的事情是,如果节点条目将只有 1,您可以摆脱每个条目。

尝试

$(document).ready(function(){
    $.get("https://gdata.youtube.com/feeds/api/videos?q=all the small thing&max-results=1&v=2&format=5&orderby=relevance&safeSearch=none",{},function(xml){
        var vidID;       
        $('entry',xml).each(function(i){
           vidID  = $(this).find('id').text();
        });//end find entry
      alert(vidID);
        $('#agenda').html(vidID);
    });//end ajax   
});//end .ready

或者

$(document).ready(function () {
    $.get("https://gdata.youtube.com/feeds/api/videos?q=all the small thing&max-results=1&v=2&format=5&orderby=relevance&safeSearch=none", {}, function (xml) {
        var vidID = $('entry', xml).find('id').text();
        alert(vidID);
        $('#agenda').html(vidID);
    }); //end ajax   
}); //end .ready

小提琴

使用JSON-C格式为您提供易于操作的管数据示例:- 在您的 url 中只需要添加alt=jsonc

https://gdata.youtube.com/feeds/api/videos?q=all%20the%20small%20thing&max-results=1&v=2&format=5&orderby=relevance&safeSearch=none&alt=jsonc

如果需要,可以遍历 json:- 在示例中只有一个,所以我只使用 json.data.item[0]。理想情况下,您将遍历 item。

$(document).ready(function () {
    $.get("http://gdata.youtube.com/feeds/api/videos?q=all%20the%20small%20thing&max-results=1&v=2&format=5&orderby=relevance&safeSearch=none&alt=jsonc", {}, function (json) {
      var vidID = json.data.items[0].id;
        alert(vidID);
        $('#agenda').html(vidID);
    }); //end ajax   
}); //end .ready

小提琴

于 2013-05-25T04:09:51.853 回答